nohup 命令在 Linux 中用于在后台运行程序,即使关闭终端或注销用户,程序也会继续运行。它通常与 & 符号一起使用,以便将输出重定向到文件。然而,nohup 本身并不直接提供任务调度的功能。要实现任务调度,你可以结合使用 cron 或其他调度工具。
以下是如何使用 nohup 和 cron 实现任务调度的步骤:
nohup 和 &编写你的脚本: 假设你有一个名为 my_script.sh 的脚本,内容如下:
#!/bin/bash echo "Hello, World!" 赋予执行权限:
chmod +x my_script.sh 使用 nohup 和 & 运行脚本:
nohup ./my_script.sh & 这会将脚本的输出重定向到 nohup.out 文件,并在后台运行。
cron 调度任务编辑 crontab 文件:
crontab -e 添加调度任务: 在打开的编辑器中,添加一行来定义任务的调度时间。例如,如果你想每天凌晨 2 点运行 my_script.sh,可以添加以下行:
0 2 * * * /path/to/my_script.sh 这里的 0 2 * * * 表示每天凌晨 2 点。
保存并退出: 保存文件并退出编辑器。cron 会自动加载新的调度任务。
nohup 和 cron如果你需要在 cron 任务中使用 nohup 来确保脚本在后台运行并且不受终端关闭的影响,可以这样做:
编辑 crontab 文件:
crontab -e 添加调度任务: 在打开的编辑器中,添加一行来定义任务的调度时间,并使用 nohup 和 &:
0 2 * * * nohup /path/to/my_script.sh & 通过这种方式,你可以确保即使在系统重启或终端关闭的情况下,你的任务也会按照预定的时间自动运行。