如何在Linux上运行无限脚本?

时间:2010-03-23 10:46:40

标签: linux infinite-loop

我有一个带有无限循环的PHP脚本。我需要这个脚本永远运行。所以,我跑

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

它在我当前用户的安全上下文中在后台运行。但当我关闭终端窗口(注销)时,当然,CentOS Linux会杀死我的程序。

我看到两个猜测:在后台运行不同的用户或制作一个守护进程。我在每种情况下都需要帮助。

非常感谢!

5 个答案:

答案 0 :(得分:24)

nohup是你的朋友。

nohup command &

答案 1 :(得分:6)

我认为对此的一般解决方案是nohup

  

nohup是一个POSIX命令,用于忽略HUP(挂断)信号,使命令在发出命令的用户注销后继续运行。按照惯例,HUP(挂断)信号是终端根据注销过程发出警告的方式。

     

nohup最常用于在后台运行命令作为守护进程。通常发送到终端的输出将转到名为nohup.out的文件(如果尚未重定向)。当需要运行多个相互依赖的批处理作业时,此命令非常有用。

答案 2 :(得分:1)

nohup是你的朋友。

答案 3 :(得分:1)

你可以:

  • 安装屏幕并从那里运行命令。 screen是一个持久的终端会话,你可以继续运行。
  • 编写一个init / upstart(无论你使用什么)脚本,以便在启动时加载
  • 使用pear lib system_daemon
  • 如果批处理工作更适合方案,请使用cron(只需记住在启动另一个实例之前检查运行实例,iff并发性是一个问题)
  • 编辑:或正如其他人和他们的兄弟刚刚说的那样,nohup

答案 4 :(得分:0)

使用命令

nohup your_command &

例如
nohup phantomjs highcharts-convert.js -host 127.0.0.1 -port 3003&

这里" phantomjs highcharts-convert.js -host 127.0.0.1 -port 3003"是我的命令