Japon uydusunun sunucusundan bir fotoğraf indirir ve bir arka plan resmi olarak ayarlar .sh komut dosyası var. Başlangıç listesine koydum, ancak her 5 dakikada bir otomatik olarak nasıl çalıştırırım?
Japon uydusunun sunucusundan bir fotoğraf indirir ve bir arka plan resmi olarak ayarlar .sh komut dosyası var. Başlangıç listesine koydum, ancak her 5 dakikada bir otomatik olarak nasıl çalıştırırım?
Yanıtlar:
Eğer siz kolay bir yolunu arayan ve önlemek kümesine hangi ortam değişkeni bulmak için:
Başlangıç Uygulamalarına aşağıdakileri ekleyin:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
Dash> Başlangıç Uygulamaları> Ekle. Komutu ekleyin:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
Komut dosyasını kendi ortamınızdan çalıştırırsanız (örn. Bir terminal penceresinden veya Başlangıç Uygulamalarından), bir dizi ortam değişkeni ayarlanır. cron
ancak betiğinizi sınırlı sayıda ortam değişkeni ile çalıştırır.
Komut dosyanız şüphesiz şu gsettings
komutu kullandığından :
gsettings get org.gnome.desktop.background picture-uri <wallpaper>
duvar kağıdını ayarlamak için, komut kesinlikle çalıştırıldığında kesilir cron
.
"Tembel çözüm" in dezavantajı tamamen teoriktir. Sürekli olarak uyuyan bir komut sisteminiz için hiçbir şey ifade etmez .
Bu yazıyı okurken ve geçmişteki deneyimlerden, DBUS_SESSION_BUS_ADDRESS
ortam değişkeninin ayarlanması gerektiğinden eminim .
Bunu yapmak için betiğinizin başına (bölümün altına) aşağıdaki bölümü ekleyin:
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
O zaman başarılı bir şekilde çalıştırabilirsiniz cron
.
Ancak koşuşturmayı çok iyi kaydedebilir ve tembel seçeneği seçebilirsiniz.
cpu 0.0%
Hangi vergiden bahsediyoruz?
Onu içine koy crontab
.
Masanızı şu cron
yolla açın :
crontab -e
Şimdi ekle:
*/5 * * * * /path/to/script.sh
Komut dosyasını önceden çalıştırılabilir yapmayı unutmayın.
Betiğiniz X'e bağlı DISPLAY
olduğundan, betiğin ortamına eklemek için muhtemelen iyi bir fikir olacaktır :
*/5 * * * * DISPLAY=:0 /path/to/script.sh
:0
Gerçek olanınızla değiştirin DISPLAY
( echo $DISPLAY
etkileşimli oturumdan bulunabilir).
Gerekirse, XAUTHORITY
ortam değişkenini de ekleyebilirsiniz :
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
Yine değeri bulabilirsiniz echo $XAUTHORITY
.
DISPLAY
XAUTHORITY