我已经制作了一个bash脚本,我们称它为script.sh,它具有下一个结构:
#!/bin/bashwhile truedo do_something() sleep 1800 #secondsdone
我希望脚本在启动时作为任务运行,尽管没有用户连接到系统。我以为可以使用'nohup script.sh',但是我不知道是否可以在启动时使用它而无需连接任何用户。有人知道吗?

最佳答案

考虑使用/etc/cron.hourly/编写每小时脚本。它将在每小时的某个时间间隔每小时运行一次。在RHEL上,它在/etc/cron.d/0hourly中定义为每小时1分钟。

然后,您可以将该框架扩展半小时间隔(1800秒= 30分钟),例如,在/etc/cron.d/1_halfhourly中:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
00,30 * * * * root run-parts /etc/cron.halfhourly

并将您的脚本或符号链接(symbolic link)放在/etc/cron.halfhourly中。

自然地,这可以扩展到一分钟的间隔,例如/etc/cron.d/2perminute:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
* * * * * root run-parts /etc/cron.perminute

这将每分钟在/etc/cron.perminute下运行每个脚本。

关于linux - 启动时触发bash脚本以定期执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32511184/

10-11 20:22
查看更多