Saya memiliki skrip .sh yang mengunduh foto dari server satelit Jepang dan menetapkannya sebagai gambar latar belakang. Saya telah memasukkannya ke daftar startup, tetapi bagaimana saya menjalankannya setiap, seperti, 5 menit, secara otomatis?
Saya memiliki skrip .sh yang mengunduh foto dari server satelit Jepang dan menetapkannya sebagai gambar latar belakang. Saya telah memasukkannya ke daftar startup, tetapi bagaimana saya menjalankannya setiap, seperti, 5 menit, secara otomatis?
Jawaban:
Jika Anda menginginkan cara yang mudah, dan hindari mencari tahu variabel lingkungan mana yang harus diatur:
Tambahkan yang berikut ke Aplikasi Startup:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
Dash> Aplikasi Startup> Tambah. Tambahkan perintah:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"Jika Anda menjalankan skrip dari lingkungan Anda sendiri (misalnya dari jendela terminal atau dari Aplikasi Startup), sejumlah variabel lingkungan akan ditetapkan. cronnamun menjalankan skrip Anda dengan variabel lingkungan terbatas.
Karena skrip Anda tidak diragukan lagi menggunakan gsettingsperintah:
gsettings get org.gnome.desktop.background picture-uri <wallpaper>
untuk mengatur wallpaper, hampir pasti perintah akan pecah saat dijalankan cron.
Kelemahan dari "solusi malas" adalah murni teoretis. Perintah yang tidur praktis terus-menerus tidak ada artinya bagi sistem Anda.
Membaca posting ini , dan dari pengalaman di masa lalu, saya cukup yakin DBUS_SESSION_BUS_ADDRESSvariabel lingkungan perlu diatur.
Untuk melakukannya, tambahkan bagian berikut di awal skrip Anda (di bawah shebang):
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
Maka Anda harus dapat menjalankannya dengan sukses cron.
Namun Anda dapat menyimpan keramaian dengan sangat baik, dan memilih opsi malas.
cpu 0.0%Pajak apa yang sedang kita bicarakan?
Masukkan ke dalam crontab.
Buka cronmeja Anda dengan:
crontab -e
Sekarang tambahkan:
*/5 * * * * /path/to/script.sh
Jangan lupa untuk membuat skrip dapat dieksekusi sebelumnya.
Karena skrip Anda bergantung pada X, mungkin ide yang baik untuk menambahkannya DISPLAYke lingkungan skrip:
*/5 * * * * DISPLAY=:0 /path/to/script.sh
Ganti :0dengan aktual Anda DISPLAY(dapat ditemukan oleh echo $DISPLAYdari sesi interaktif).
Jika perlu, Anda juga dapat menambahkan XAUTHORITYvariabel lingkungan:
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
Sekali lagi Anda dapat menemukan nilainya dengan echo $XAUTHORITY.
DISPLAYXAUTHORITY