0

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

鉴于这项任务很可能每 30 分钟到 1 小时完成一次,我应该如何去做。30 分钟/1 小时的计时器会非常低效吗?或者,cronjobs 可以为我做得更好吗?

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

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

4

3 回答 3

1

这将是一个适合的工作croncron会负责定期调用脚本。当脚本应该运行和管理在后台运行的脚本时,您不必担心脚本。

在后台运行会很浪费,因为脚本不需要做太多事情 - 只需更改当前桌面设置即可。通常,脚本只需要一小部分时间即可完成任务。

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
于 2013-04-20T15:09:29.843 回答
0

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

那将是一个守护进程。而且没有必要自己写。如果你想要pidfile,在 bash 中有点乏味, start| stop| restart等等。只需添加一个新的 cronjob,它会每n分钟执行一次你的脚本。

编辑你的 cronjobs

crontab -e

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

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

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

service cron restart

列出 cronjobs:

crontab -l
于 2013-04-20T15:07:36.777 回答
0

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

0 * * * * $HOME/changewallpaper.sh

您可以使用此命令作为用户安装

crontab -e

其他解决方案包括从文件 ~/.xprofile 运行守护程序脚本

欲了解更多信息,请参阅

man crontab
man 5 crontab

另请查看此项目Variety

于 2013-04-20T15:25:43.820 回答