![]() |
1
103
我为我编写的后台打印程序执行此操作,它只是一个shell脚本:
它每两分钟运行一次,非常有效。如果由于某种原因进程没有运行,我会通过电子邮件向我发送特殊信息。 |
![]() |
2
79
使用
现在您不必自己编写代码了。查看更多原因: https://serverfault.com/a/82863
|
![]() |
3
57
正如其他人所说,编写和检查PID文件是一个很好的解决方案。下面是我的bash实现:
|
![]() |
4
22
不要试图通过cron来实现。让cron运行一个脚本,不管是什么,然后让脚本决定程序是否在运行,并在必要时启动它(注意,您可以使用ruby或python或您最喜欢的脚本语言来执行此操作)。 |
![]() |
5
17
|
![]() |
6
10
您也可以直接在crontab中作为一个一行程序执行此操作:
|
![]() |
7
5
作为对earlz答案的后续操作,您需要一个包装脚本,它在启动时创建一个$pid.running文件,在结束时删除。包装器脚本调用要运行的脚本。如果目标脚本失败或出错,则需要包装器,PID文件将被删除。 |
![]() |
8
4
当我运行PHP脚本时,我这样做的方式是: crontab:
PHP代码:
此命令正在系统进程列表中搜索当前的PHP文件名 如果它存在,行计数器(wc-l)将大于1,因为搜索命令本身包含文件名 因此,如果运行php crons,请将上述代码添加到php代码的开头,它将只运行一次。 |
![]() |
9
3
|
![]() |
10
3
用
|
![]() |
11
2
This one 我从未失败过: 在某地 :
定时任务 :
|
![]() |
12
1
我建议你改进一下 rsanden's answer (我会发表评论,但没有足够的声誉…):
这避免了可能的错误匹配(以及grepping的开销),并且它抑制了输出,只依赖于ps的退出状态。 |
![]() |
13
1
简单的自定义PHP就足够了。无需与shell脚本混淆。 假设你想跑 php/home/mypath/example.php 如果不运行 然后使用下面的自定义PHP脚本来完成相同的工作。 创建以下内容 /主页/mypath/forever.php
然后在你的cron中添加以下内容
|
![]() |
14
1
|
![]() |
15
0
考虑使用pgrep(如果可用),而不是通过grep导入的ps,如果您要走这条路。不过,就我个人而言,我有很多工作要做
尽管这可能会失败和cron作业 是 通常是必备品的最佳选择。只是另一种选择。 |
|
Batavia · Bash-删除大目录中的文件 1 年前 |
![]() |
stackbiz · 如何在bash中将所有换行符替换为“\n” 1 年前 |
![]() |
Paul · Bash wait命令忽略指定的进程ID 2 年前 |