在 Linux 中,nohup
命令用于在后台运行程序,即使关闭终端或注销用户,程序也会继续运行
以下是使用 nohup
和 cron
进行定时任务的步骤:
my_script.sh
,并在其中添加你想要定时执行的命令。确保脚本具有可执行权限,可以使用 chmod +x my_script.sh
命令。#!/bin/bash
# my_script.sh
echo "Hello, World! This is a test."
使用 crontab -e
命令编辑当前用户的 crontab 文件。这将打开一个文本编辑器,你可以在其中添加定时任务。
在 crontab 文件中,添加一行,指定任务的执行时间和要运行的脚本。cron
的时间格式为:* * * * *
,分别表示 分、时、日、月、星期。例如,如果你想每天凌晨 1 点运行 my_script.sh
,可以添加以下行:
0 1 * * * /path/to/your/my_script.sh
将 /path/to/your/
替换为脚本所在的实际路径。
保存并退出 crontab 文件。现在,你的定时任务已经设置好了。你可以使用 crontab -l
命令查看当前用户的定时任务列表。
如果你想在后台运行脚本并忽略挂起信号,可以在 crontab 文件中的命令前加上 nohup
和 &
。例如:
0 1 * * * nohup /path/to/your/my_script.sh &
这样,即使关闭终端或注销用户,定时任务也会继续运行。
注意:使用 nohup
运行的程序会将输出重定向到名为 nohup.out
的文件。如果你想将输出重定向到其他文件,可以在命令后添加 >
和文件路径,例如:
0 1 * * * nohup /path/to/your/my_script.sh > /path/to/output.log 2>&1 &
这将把标准输出和错误输出都重定向到 output.log
文件。