BASH - 将此脚本设置为定时/例程事件的最有效方法?

时间:2013-04-20 14:43:42

标签: linux bash gnu

我最近开始了一个简单的项目,只是为了帮助我更好地学习BASH脚本语言。无论如何,此脚本设置为以给定间隔交替/旋转用户的桌面背景/壁纸。

鉴于此任务最有可能每30分钟到1小时完成一次,我该怎么做呢。 30分钟/ 1小时计时器效率非常低吗?或者,cronjobs可以为我做得更好吗?

另外,我怎么能让这个脚本在后台运行,这样终端窗口并不总是需要打开?

如果可以,您是否可以在语法中提供某种想法。

3 个答案:

答案 0 :(得分:1)

这对cron来说是一个合适的工作。 cron会定期调用脚本。然后,当脚本运行并管理在后台运行的脚本时,您不必担心脚本。

在后台运行会非常有用,因为脚本不需要做太多 - 只需更改当前的桌面设置即可。通常,脚本只需要一小段时间就可以完成任务。

cron条目有六个字段 - :

 mins hours day  month day-of-week path_to_command
 0-59 0-23  1-31 1-12      0-6      command
days of the week start on Sunday. 0=Sunday, 1=Monday etc.
所有日期和月份每小时运行脚本的

cron条目 - :

0 * * * * /path/change_wallpaper.sh

列出您当前的cron个工作,输入

 crontab -l 

编辑你的cron作业并添加新的cron条目 - :

 crontab -e

检查新设置是否已就位 - :

 crontab -l

答案 1 :(得分:0)

  

另外,我怎么能让这个脚本在后台运行,这样终端窗口并不总是需要打开?

那将是daemon。而且没有必要自己编写。如果你想要pidfilestart | stop | restart等,那么bash有点乏味。只需添加一个新的cronjob,它将每n执行你的脚本分钟什么的。

编辑您的cronjobs

crontab -e

每30分钟执行一次脚本(与30不同,每hh:30执行一次!)

*/30 * * * * /path/to/your/script

重启cron。怎么取决于发行版,这里是Ubuntu:

service cron restart

列出cronjobs:

crontab -l

答案 2 :(得分:0)

我会亲自使用以下crontab运行脚本:

0 * * * * $HOME/changewallpaper.sh

您可以使用此命令以用户身份安装

crontab -e

其他解决方案包括从文件〜/ .xprofile

运行守护程序脚本

有关详细信息,请参阅

man crontab
man 5 crontab

同时查看此项目Variety