我最近开始了一个简单的项目,只是为了帮助我更好地学习 BASH 脚本语言。无论如何,这个脚本被设置为以给定的时间间隔交替/旋转用户的桌面背景/壁纸。
鉴于这项任务很可能每 30 分钟到 1 小时完成一次,我应该如何去做。30 分钟/1 小时的计时器会非常低效吗?或者,cronjobs 可以为我做得更好吗?
另外,我怎样才能让这个脚本在后台运行,这样终端窗口并不总是需要打开?
如果可以的话,您能否在语法中提供某种想法。
这将是一个适合的工作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
另外,我怎样才能让这个脚本在后台运行,这样终端窗口并不总是需要打开?
那将是一个守护进程。而且没有必要自己写。如果你想要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
我会使用以下 crontab 亲自运行脚本:
0 * * * * $HOME/changewallpaper.sh
您可以使用此命令作为用户安装
crontab -e
其他解决方案包括从文件 ~/.xprofile 运行守护程序脚本
欲了解更多信息,请参阅
man crontab
man 5 crontab
另请查看此项目Variety。