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. cron
namun menjalankan skrip Anda dengan variabel lingkungan terbatas.
Karena skrip Anda tidak diragukan lagi menggunakan gsettings
perintah:
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_ADDRESS
variabel 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 cron
meja 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 DISPLAY
ke lingkungan skrip:
*/5 * * * * DISPLAY=:0 /path/to/script.sh
Ganti :0
dengan aktual Anda DISPLAY
(dapat ditemukan oleh echo $DISPLAY
dari sesi interaktif).
Jika perlu, Anda juga dapat menambahkan XAUTHORITY
variabel lingkungan:
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
Sekali lagi Anda dapat menemukan nilainya dengan echo $XAUTHORITY
.
DISPLAY
XAUTHORITY