我正在使用 crontab,其中有一个@reboot
条目启动一个包含无限 while 循环的脚本,该脚本正在处理tail -F
命令的输出。有没有办法停止当前正在运行的脚本并重新启动规则而@reboot
无需实际重启?我正在运行 Debian 6。
答案1
我假设您知道脚本的名称(使用 pkill),或者可以找到其进程 ID(ps aux,然后 kill -9)。然后使用与 crontab 中相同的命令重新启动它。如果您想从会话中分离进程,您可以使用 nhup 或 dtach或类似的东西。
这很简单。更好的方法是编写一个 init(或 upstart 或 systemd)脚本,这样您就可以从那里停止并启动服务。不过,这取决于您的发行版。
答案2
我知道这个问题已经过时了,但我想添加另一个答案以防有人遇到它。接受的答案是正确的,因为它取决于你的发行版,但以下是在 Linux 和 Debian 上执行此操作的方法
您还可以使用以下命令来实现此目的
sudo rm /var/run/crond.reboot
sudo service cron restart
仅供参考,您可以看到如下 crontab 日志:
grep CRON /var/log/syslog