Heim  >  Fragen und Antworten  >  Hauptteil

php - nohup 为什么退出终端也就退出了,怎么解决呢

例如我这样让其放置后台

nohup php index.php &

然后 jobs

jobs

[3]  - running    nohup /home/pubsrv/php-5.6.15/bin/php ~/tools/douban/localBanBrush.php  2>&1
[4]  + running    nohup /home/pubsrv/php-5.6.15/bin/php ~/tools/douban/localBanBrush.php  2>&1

现在都还在,可是我退出终端后 ,下次登录可就没了。。
没了: 进程号木有,直接ps不到,同样的,程序是死循环 ,需要我手动才能关闭,我就测试退出进来它就关闭了,排除程序问题

高洛峰高洛峰2763 Tage vor554

Antworte allen(7)Ich werde antworten

  • 阿神

    阿神2017-04-17 17:12:38

    后面漏了一个符号:&

    例如:

    nohup sh /usr/local/services_data/elasticsearch-head.sh > /dev/null 2>&1 &

    运行nohup命令后,按一下会车,就可以知道程序能不能在后台运行了。如果不行,会有跳出信息,就和你的一样。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-17 17:12:38

    进程的标准输出默认为当前回话,如果关闭回话肯定会出错。 应该把标准输出重定向到/dev/null

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:12:38

    1.你可以通过进程号查看被挂起的进程是否是真的退出了.
    2.如果退出了你需要查看你的程序日志, 看你的程序是在哪里退出的.

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:12:38

    cat nohup.out 看看,如果没有这个文件,说明 nohup 还没运行完你就关闭终端了,当然没有。

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:12:38

    用ps -aux|grep xxx来寻找

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:12:38

    我之前遇到过,和你使用的SSH终端有关,你可以换成原生态的那个bash来试试。

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-17 17:12:38

    我采用的是 setsid /usr/local/php/bin/php ~/shua3.php > /dev/null &

    Antwort
    0
  • StornierenAntwort