nohup
命令本身不能直接用于定时任务,但它可以与 while
循环和 sleep
命令结合使用来实现定时任务的功能
while true; do
nohup python your_script.py > /dev/null 2>&1 &
sleep 60 # 每隔 60 秒执行一次脚本
done
这个脚本会无限循环地执行 your_script.py
,并在每次执行后等待 60 秒。nohup
命令确保脚本在后台运行,即使你关闭终端窗口也不会停止执行。
然而,使用这种方法实现定时任务并不是最佳实践。一个更优雅的方法是使用 cron
定时任务。你可以编写一个简单的 shell
脚本,然后使用 crontab
来设置定时任务。例如:
#!/bin/bash
while true; do
nohup python your_script.py > /dev/null 2>&1 &
sleep 60
done
将此脚本保存为 run_script.sh
,然后通过以下命令使其可执行:
chmod +x run_script.sh
接下来,打开 crontab
编辑器:
crontab -e
在编辑器中添加一行,设置定时任务的时间间隔和脚本路径。例如,要每隔 60 秒执行一次脚本,可以添加以下内容:
*/60 * * * * /path/to/your/run_script.sh
保存并退出编辑器。现在,定时任务已经设置好了。请注意,这种方法仍然使用了 nohup
,但它与 cron
结合使用,使得定时任务的设置和管理更加方便。