从具有start-stop-daemon的LSB init脚本启动PHP守护程序

前端之家收集整理的这篇文章主要介绍了从具有start-stop-daemon的LSB init脚本启动PHP守护程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在写一个lsb init脚本(不可否认的是我从未做过的事情),它启动了一个自我守护的PHP脚本. PHP脚本就像这样开始:
  1. #!/usr/bin/env PHP
  2. <?PHP
  3. /* do some stuff */

然后在init脚本中启动它:

  1. # first line is args to start-stop-daemon,second line is args to PHP-script
  2. start-stop-daemon --start --exec /path/to/executable/PHP-script.PHP \
  3. -- --daemon --pid-file=$PIDFILE --other-PHP-script-args

–daemon标志导致PHP脚本分离&作为守护进程本身运行,而不是依靠start-stop-daemon来分离它.

这是它(尝试)在init脚本中停止它的方式:

  1. start-stop-daemon --stop --oknodo --exec /path/to/executable/PHP-script.PHP \
  2. --pidfile $PIDFILE

问题是,当我尝试通过init脚本停止时,它给了我:

  1. $sudo /etc/init.d/my-lsb-init-script stop
  2. * Stopping My Project
  3. No /path/to/executable/PHP-script.PHP found running; none killed.
  4. ...done.

快速查看ps告诉我,即使PHP脚本本身是可执行的,它也可以作为PHP< script>运行.而不是脚本名称本身,这使得start-stop-daemon看不到它. PID文件甚至正在生成,但似乎忽略它并尝试通过进程名称查找kill.

  1. $ps ax | grep '/path/to/executable/PHP-script.PHP'
  2. 2505 pts/1 S 0:01 PHP /path/to/executable/PHP-script.PHP --daemon --pid-file /var/run/blah/blah.pid --other-PHP-script-args
  3. 2507 pts/1 S 0:00 PHP /path/to/executable/PHP-script.PHP --daemon --pid-file /var/run/blah/blah.pid --other-PHP-script-args
  4. 2508 pts/1 S 0:00 PHP /path/to/executable/PHP-script.PHP --daemon --pid-file /var/run/blah/blah.pid --other-PHP-script-args
  5. 2509 pts/1 S 0:00 PHP /path/to/executable/PHP-script.PHP --daemon --pid-file /var/run/blah/blah.pid --other-PHP-script-args
  6. 2518 pts/1 S 0:01 PHP /path/to/executable/PHP-script.PHP --daemon --pid-file /var/run/blah/blah.pid --other-PHP-script-args
  7. $cat /var/run/blah/blah.pid
  8. 2518

我在这里完全误解了什么吗?或者有一种简单的方法可以解决这个问题吗?

正确停止:
  1. start-stop-daemon --stop --oknodo --pidfile $PIDFILE

猜你在找的PHP相关文章