【问题标题】:Start a Linux job that has a loop启动具有循环的 Linux 作业
【发布时间】:2011-12-02 06:40:22
【问题描述】:

我正在尝试弄清楚如何开始我创建的运行循环的工作(这是另一个故事)。

脚本是;

while [1];do
sleep 1
/usr/bin/php /var/www/mis/sms/sms_daemon.php > /dev/null 2>&1
done

当我运行 /etc/init.d/sms_daemon start(我创建的作业)时 - 它永远不会返回到命令提示符,除非我点击 ctrl-zctrl-c,这会停止服务...

【问题讨论】:

  • Ummm....那是因为你设置了一个无限循环。
  • 您创建了一个循环(无限)。那么为什么你的进程要返回呢?
  • 为什么不创建一个脚本来运行它并通过在底部添加'&'在后台运行它。
  • 为什么投反对票?看起来很适合问答形式。
  • +1 @ajreal - 你不能投反对票,因为 OP 犯了一个男生编码错误,当问题清楚、简洁并提供足够的信息(例如这个)时。有足够多的人提出不好的问题,我们不要以虚假的反对票来阻止那些提出好问题的人......

标签: php linux ubuntu


【解决方案1】:

创建一个函数并在后台运行它

start_job(){
while [1];do
sleep 1
/usr/bin/php /var/www/mis/sms/sms_daemon.php > /dev/null 2>&1
done
}

start_job &

nohup start_job

【讨论】:

  • 也可能是另一个脚本...(我不确定 nohup 是否接受函数)
猜你喜欢
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
相关资源
最近更新 更多