在 linux 中利用 nohup 命令进行任务调度是非常实用的技巧。本文将详细讲解如何在 linux 系统中使用 nohup 命令来保持任务在后台运行,以及如何结合 cron 实现定时任务调度。

nohup 命令的主要作用是让命令在用户退出登录后仍然能够继续运行。
- 首先,启动终端。
- 然后,输入 nohup 命令,并附加您希望执行的命令。例如,如果您想在后台运行一个名为 my_script.sh 的脚本,您可以输入:
nohup ./my_script.sh &
这里,& 符号会将命令放入后台执行。
- 您会看到类似于以下内容的输出:
nohup: ignoring input and appending output to 'nohup.out'
这表示命令的输出将被重定向到一个名为 nohup.out 的文件中。如果您希望将输出重定向到其他文件,可以使用以下命令:
nohup ./my_script.sh > output.log 2>&1 &
这里,> 符号会将标准输出重定向到 output.log 文件,2>&1 会将标准错误重定向到标准输出,而 & 符号会将命令放入后台执行。
- 要实时查看 nohup.out 文件的内容,可以使用 tail 命令:
tail -f nohup.out
- 如果您希望在特定时间运行任务,可以结合 cron 任务调度器来实现。首先,使用 crontab -e 命令来编辑当前用户的 cron 配置文件。然后,在文件末尾添加一行,指定任务的运行时间和要执行的命令。例如,如果您希望每天凌晨 1 点运行 my_script.sh 脚本,可以添加以下行:
0 1 * * * /path/to/your/script/my_script.sh
保存并退出编辑器。现在,您的任务将在指定的时间自动运行。
总而言之,nohup 命令能够让您在后台运行命令,即使您退出登录,命令仍会继续执行。结合 cron 任务调度器,您可以实现定时任务调度。










