nohup 命令本身并不直接用于定时任务,它的主要作用是让进程在用户退出登录后继续运行。nohup 是 “no hang up” 的缩写,它可以防止进程因为挂起(SIGHUP)信号而终止。
如果你想要在特定时间执行一个命令,并且希望这个命令在用户退出登录后仍然继续运行,你可以结合使用 nohup 和 cron 来实现。
以下是一个简单的例子,说明如何使用 nohup 和 cron 来创建一个定时任务:
crontab -e 来编辑当前用户的 crontab 文件。my_script.sh 的脚本,并且希望这个脚本在后台运行并且不受挂起信号的影响,你可以添加如下行:0 1 * * * nohup /path/to/my_script.sh > /dev/null 2>&1 &
这行的含义是:
0 1 * * *:表示每天凌晨 1 点执行任务。nohup /path/to/my_script.sh:使用 nohup 命令运行脚本。> /dev/null 2>&1:将标准输出和标准错误重定向到 /dev/null,即丢弃所有输出。&:在后台运行命令。现在,你的定时任务已经设置好了。每天凌晨 1 点,my_script.sh 脚本将会在后台运行,并且即使你退出登录,它也会继续运行。