在Linux中,结合nohup和cron任务调度可以让你在后台运行程序,即使你关闭了终端或者断开了SSH连接,程序也会继续运行。以下是如何实现的步骤:
首先,编写一个你想要在后台运行的脚本。例如,创建一个名为my_script.sh的脚本:
#!/bin/bash
# my_script.sh
# 这里是你想要执行的命令
echo "Hello, World!" >> /path/to/output.log
确保脚本有执行权限:
chmod +x /path/to/my_script.sh
nohup运行脚本你可以直接在终端中使用nohup来运行脚本,并将其输出重定向到一个文件中:
nohup /path/to/my_script.sh > /path/to/output.log 2>&1 &
这行命令的意思是:
nohup:忽略挂起信号。/path/to/my_script.sh:要运行的脚本路径。> /path/to/output.log:将标准输出重定向到output.log文件。2>&1:将标准错误输出重定向到标准输出,即也写入output.log文件。&:将命令放入后台运行。cron调度任务编辑你的crontab文件来添加一个定时任务:
crontab -e
在打开的编辑器中添加一行,指定任务的执行时间和要运行的命令。例如,如果你想每天凌晨2点运行这个脚本:
0 2 * * * nohup /path/to/my_script.sh > /path/to/output.log 2>&1 &
这行命令的意思是:
0 2 * * *:每天凌晨2点执行。nohup /path/to/my_script.sh > /path/to/output.log 2>&1 &:使用nohup在后台运行脚本,并将输出重定向到output.log文件。保存并退出编辑器。cron会自动加载新的任务。
你可以通过查看output.log文件来验证任务是否按预期运行:
tail -f /path/to/output.log
cron(例如/etc/crontab),你需要使用完整的用户路径来指定命令。crontab文件和运行脚本。通过以上步骤,你就可以在Linux中结合nohup和cron任务调度来在后台运行程序了。