为什么命令行说在后台运行后进程停止了?

时间:2014-10-23 15:02:51

标签: linux shell command-line background-process

我有一个需要10分钟才能运行的脚本:

php /path/to/script.php

如果我按照上面的方式运行,它会像这样打印出反馈:

> php /path/to/script.php
1    file_a.txt processed in 4.3 seconds
2    file_b.txt processed in 3.5 seconds
...

但是我想像这样并行运行其中几个进程:

> php /path/to/script.php &>/dev/null &
> php /path/to/script.php &>/dev/null &

但是每次我这样做,我都会看到前一个像这样停止:

> php /path/to/script.php &>/dev/null &
[1] 11206
> php /path/to/script.php &>/dev/null &
[1]+  Stopped                 php /path/to/script.php &>/dev/null

如何一次运行多个这些脚本?

到目前为止,我已尝试过:

> php /path/to/script.php &
> php /path/to/script.php &/dev/null &
> nohup php /path/to/script.php &
nohup: ignoring input and appending output to `nohup.out'

我也设置了error_reporting(E_ALL),手动运行时不会显示任何错误。

更新

感谢慷慨的评论者,以下作品:

php /path/to/script.php < /dev/null &

1 个答案:

答案 0 :(得分:1)

php /path/to/script.php < /dev/null

或者用以下内容使脚本静音:

php /path/to/script.php < /dev/null &>/dev/null &