我需要在每次重新启动后一分钟执行我的脚本。当我@reboot
在我的 crontab 中申请时,我的脚本为时过早 - 我希望脚本在重新启动时常规运行的所有其他任务之后执行。重新启动后如何运行脚本?
D_B*_*Bye 100
该脚本是否只打算在启动后一分钟运行,或者也可以在其他时间使用?在前一种情况下,您可以添加sleep 60
到脚本的开头,或者在后一种情况下,将其添加到 crontab 文件中:
@reboot sleep 60 && my_script.sh
Run Code Online (Sandbox Code Playgroud)
但是,正如 sr_ 所指出的,也许您以错误的方式解决了这个问题,而适当的 init.d 或 rc.d 脚本将是一个更强大的解决方案。
Env*_*vek 21
例如,如果您需要在网络可用时重新启动后执行某些操作,例如,您可以编写将在所需时间执行的 systemd 单元(当然这仅适用于具有 systemd 的系统)。
为此,请创建/etc/systemd/system/my_script.service
具有以下内容的文件:
[Unit]
Description=My script that requires network
After=network.target
[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
然后执行:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Run Code Online (Sandbox Code Playgroud)
你完成了!
cla*_*cke 16
我会使用at
. 如:
@reboot echo /root/bin/do_the_stuff | at now + 2 minutes
# at assigns it an execution time truncated to whole minutes,
# so this means it will execute in 1--2 minutes.
Run Code Online (Sandbox Code Playgroud)
...加上提到的警告,如果您真正想要的是在所有其他事情之后运行它,您应该检查如何在您的操作系统正在使用的 init 中执行此操作。
归档时间: |
|
查看次数: |
186585 次 |
最近记录: |