nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。而 cron
是一个定时任务调度器,用于定期执行指定的任务。要将 nohup
与 cron
结合使用,可以在 crontab
文件中添加一个条目,使用 nohup
命令来运行你需要的程序。
以下是如何将 nohup
与 cron
结合使用的步骤:
-
打开终端。
-
输入
crontab -e
命令来编辑当前用户的crontab
文件。如果这是你第一次使用crontab
,它可能会提示你选择一个文本编辑器。 -
在打开的
crontab
文件中,添加一行来定义你的定时任务。这一行应该包含以下部分:- 分钟(0-59)
- 小时(0-23)
- 月份中的日期(1-31)
- 月份(1-12)
- 星期中的日期(0-7,其中0和7都代表星期日)
- 要执行的命令
例如,如果你想要每天凌晨1点运行一个名为
my_script.sh
的脚本,该脚本位于/home/user/scripts/
目录下,你可以添加如下行:0 1 * * * nohup /home/user/scripts/my_script.sh > /home/user/scripts/output.log 2>&1 &
这里的
>
和2>&1
是将标准输出和标准错误重定向到output.log
文件。&
在命令末尾表示将命令放入后台运行。 -
保存并关闭
crontab
文件。 -
使用
crontab -l
命令来查看当前的定时任务列表,确认你的新任务已经被添加。 -
确保你的脚本具有可执行权限。如果没有,可以使用
chmod +x /home/user/scripts/my_script.sh
命令来赋予它可执行权限。 -
等待指定的时间,或者手动触发
cron
服务来测试你的任务是否按预期执行。
请注意,如果你的脚本需要特定的环境变量才能正确运行,你可能需要在 crontab
文件中设置这些环境变量,或者在脚本的开头定义它们。此外,确保日志文件路径是可写的,并且定期检查日志文件以确保脚本正常运行。