Jav*_*bra 6 ssh cron rhel php nohup
我很新Linux
,我只使用它SSH
到我的网络服务器使用Putty
. 我遇到的问题是:
基本上我有2个php
脚本。一个人get_tweets.php
不断地在 twitterStreaming API
上收听推文,而另一个人 -parse_tweets.php
将这些记录到db
. 为了使这些工作正常,它们必须保持连续运行。
我一直在使用以下命令在后台运行它们,并且从我所看到的它们在一天中的大部分时间都在运行,但是每当我早上登录到我的计算机时,它就scripts
停止了,我必须运行命令再次。
nohup php my_script.php > /dev/null &
我只是想知道根据我使用的命令这是否正常,它们是否应该在使用时无限期运行nohup
,如果不是,还有什么替代方法?一份CRON
工作?
谢谢您的帮助
随着nohup
你必须重定向也错误。下一个命令运行脚本,输出和错误重定向到 /dev/null:
nohup php my_script.php >/dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
但是您的脚本可能因其他一些原因(脚本错误、oom-killer 等)而终止。所以,你应该通过系统的 init 来守护它(如果它支持自动重启——upstart、systemd 和其他一些可以做到)。或者你应该编写 cron 任务来检查并重新启动你的脚本,如果它没有运行。
也许您想看看发生了什么,而不是将输出重定向到/dev/null
.
我建议你打开一个screen
或tmux
会话。两者都是终端多路复用器,即使您注销,它们也会保持活动状态。
例如,(..)
获取信息
$ screen
$(inside screen-t1): ./get_tweets.php
.... running first
Run Code Online (Sandbox Code Playgroud)
现在按Ctrl-a c
打开一个新终端。
$(inside screen-t2): ./parse_tweets.php
... running second
Run Code Online (Sandbox Code Playgroud)
Ctrl-a d
让您分离会话。当您重新登录时,使用screen -r
注意:您可以在屏幕中显示状态栏以可视化不同的窗口。
归档时间: |
|
查看次数: |
38446 次 |
最近记录: |