12 我需要在大约5秒钟的间隔内调用特定命令。如何设置后台运行的守护进程/进程或类似的方法?我看了cronjobs,但最小间隔似乎是1分钟。任何建议表示赞赏;) Fedora是系统。 编辑该命令将是一个bashscript,所以我认为“监视”不会这样做。 command-line — 汉斯 source
10 ( while true do your-command-here sleep 5 done ) & disown — 朱利亚诺 source 什么被剥夺?如果没有它我该怎么办? — 汉斯 @Marcel,disown从shell作业表中删除最后一个作业,使其像您所要求的那样成为守护程序。它不是真正的守护程序,因为它仍然连接到终端并且在同一进程组中,但是在关闭外壳程序后它将继续运行。 — 朱利诺 好的,那很好用:D只是出于好奇,我将如何“制作”一个守护进程? — 汉斯, @Marcel的简单方法是从C或具有库访问权限的其他语言(而不是从Shell脚本)调用daemon(3)。这是很难的方法。 — 朱利诺
14 您为什么认为“手表”不起作用? $ cat periodic.sh #!/bin/bash echo $(date) $ chmod +x periodic.sh $ watch -n 5 ./periodic.sh — 瑙夫拉吉 source 如果我注销该怎么办?该脚本应继续运行。 — 汉斯, 它将停止,但是您可以使用nohup watch -n 5 ./periodic.sh > periodic.log &和存储输出。 — naufraghi 2011年 对于管道,请使用“引号”,因为“命令”被赋予“ sh -c”,这意味着您可能需要使用额外的引号才能获得所需的效果” — andrej 2013年
1 该watch命令适合您的情况,我将使用终端多路复用器(例如tmux,屏幕等),然后使用 watch -n 5 ./script.sh 在那种情况下,即使您关闭与计算机的终端或ssh连接,脚本仍将运行。 这种方法的唯一局限性是,脚本只有在该时间间隔内完成执行后,才会每5秒运行一次。 — 吉姆斯 source 由于OP明确表示他认为watch不会这样做,因此请解释为什么您的答案克服了此限制,或者在这一点上您认为OP错误地认为watch不适合该任务。 — AdminBee