程序启动后,短时间内执行 php start.php stop,重新运行 php start.php start -d没问题。
执行一段时间后(几天,或者十来天都可能),进行代码更新后,再执行 php start.php stop显示
[root@localhost ECM-PHP]# php start.php stop
Workerman[start.php] stop
Workerman[start.php] not run
再执行php start.php start -d,显示地址已在使用,之前的程序没有停止。
只能执行ps aux|grep -i workerman|awk '{print $2}'|xargs kill -9 后才能重新启动。
[root@localhost ECM-PHP]# php start.php stop
Workerman[start.php] stop
Workerman[start.php] not run
[root@localhost ECM-PHP]# php start.php start -d
Workerman[start.php] start in DAEMON mode
stream_socket_server(): unable to connect to tcp://0.0.0.0:38787 (地址已在使用) in file /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2363
PHP Fatal error: Uncaught Exception: 地址已在使用 in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php:2365
Stack trace:
#0 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(700): Workerman\Worker->listen()
#1 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(555): Workerman\Worker::initWorkers()
#2 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#3 /mnt/data/ecm/php/ECM-PHP/start.php(4): support\App::run()
#4 {main}
thrown in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2365
Fatal error: Uncaught Exception: 地址已在使用 in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php:2365
Stack trace:
#0 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(700): Workerman\Worker->listen()
#1 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(555): Workerman\Worker::initWorkers()
#2 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#3 /mnt/data/ecm/php/ECM-PHP/start.php(4): support\App::run()
#4 {main}
thrown in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2365
[root@localhost ECM-PHP]# php start.php start -d
Workerman[start.php] start in DAEMON mode
stream_socket_server(): unable to connect to tcp://0.0.0.0:38787 (地址已在使用) in file /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2363
PHP Fatal error: Uncaught Exception: 地址已在使用 in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php:2365
Stack trace:
#0 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(700): Workerman\Worker->listen()
#1 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(555): Workerman\Worker::initWorkers()
#2 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#3 /mnt/data/ecm/php/ECM-PHP/start.php(4): support\App::run()
#4 {main}
thrown in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2365
Fatal error: Uncaught Exception: 地址已在使用 in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php:2365
Stack trace:
#0 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(700): Workerman\Worker->listen()
#1 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(555): Workerman\Worker::initWorkers()
#2 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#3 /mnt/data/ecm/php/ECM-PHP/start.php(4): support\App::run()
#4 {main}
thrown in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2365
[root@localhost ECM-PHP]# php start.php stop
Workerman[start.php] stop
Workerman[start.php] not run
[root@localhost ECM-PHP]# php start.php start -d
Workerman[start.php] start in DAEMON mode
stream_socket_server(): unable to connect to tcp://0.0.0.0:38787 (地址已在使用) in file /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2363
PHP Fatal error: Uncaught Exception: 地址已在使用 in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php:2365
Stack trace:
#0 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(700): Workerman\Worker->listen()
#1 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(555): Workerman\Worker::initWorkers()
#2 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#3 /mnt/data/ecm/php/ECM-PHP/start.php(4): support\App::run()
#4 {main}
thrown in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2365
Fatal error: Uncaught Exception: 地址已在使用 in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php:2365
Stack trace:
#0 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(700): Workerman\Worker->listen()
#1 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php(555): Workerman\Worker::initWorkers()
#2 /mnt/data/ecm/php/ECM-PHP/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#3 /mnt/data/ecm/php/ECM-PHP/start.php(4): support\App::run()
#4 {main}
thrown in /mnt/data/ecm/php/ECM-PHP/vendor/workerman/workerman/Worker.php on line 2365
[root@localhost ECM-PHP]# ps aux|grep -i workerman|awk '{print $2}'|xargs kill -9
kill: 向 12222 发送信号失败: 没有那个进程
[root@localhost ECM-PHP]# php start.php start -d
Workerman[start.php] start in DAEMON mode
-------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.1.15 PHP version:7.4.33 Event-Loop:\Workerman\Events\Select
--------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root webman http://0.0.0.0:38787 80 [OK]
tcp root monitor none 1 [OK]
tcp root synctask http://0.0.0.0:38788 8 [OK]
tcp root synctaskcomm none 1 [OK]
---------------------------------------------------------------------------------------------------
Input "php start.php stop" to stop. Start success.
进程启动后会把进程pid存在runtime下,这个pid文件不要放代码库里。
否则每次更新代码后pid文件是过时的,导致无法停止进程,启动并时端口会提示占用。
没有被覆盖,.gitignore文件都忽略了runtime内的所有文件的
自己更新代码前和更新后对比下看下线上pid文件内容和主进程pid是否相同。
执行
ps auxf能看到webman主进程pid