Saya ingin menjalankan skrip sebelum saya keluar dari sesi GNOME saya, untuk memperingatkan diri saya sendiri jika saya lupa sebuah pendrive dicolokkan ke mesin.
Namun, semua solusi yang saya temukan belum cukup untuk saya:
Pertanyaan serupa ini menyarankan untuk mengedit
/etc/gdm/PostSession/Default
file, tetapi saya tidak memiliki izin untuk melakukan itu. (Dan file saat ini kosong di mesin saya, jadi tidak ada kait yang ada untuk mengambil keuntungan dari)Saya juga menemukan posting ini menyarankan solusi tetapi, menurut jawaban pertama, itu tidak berfungsi jika saya mematikan komputer alih-alih hanya log off.
Jawaban:
Saat Anda menggunakan Gnome, Anda dapat menggunakan skrip Python di bawah ini, yang diadaptasi dari yang Anda sebutkan.
Perlu logout Gnome (yaitu
gnome-session-quit
) (atau shutdown gnome), yang terjadi ketika kita menggunakan logout di GUI. AFAIK tidak ada proses yang dapat memblokir shutdown dengan perintahsudo shutdown -h 0
atau olehsudo poweroff
. Ketikashutdown
dieksekusi memberikan SIGTERM ke semua proses dan memberikan beberapa detik kepada mereka untuk keluar (Setelah menjalankan beberapa skrip yang tidak dapat diedit oleh pengguna non root). Jika tidak keluar proses akan dibunuh dengan paksa oleh SIGKILL.Ini adalah langkah demi langkah prosedur
gnome_save_yourself
metode. Ayo lakukan tes.Simpan kode berikut sebagai
~/Desktop/execute_script_on_shutdown.sh
(Dari http://www.linuxquestions.org/questions/linux-desktop-74/gnome-run-script-on-logout-724453/#post3560301 )Jadikan itu dapat dieksekusi:
Simpan yang berikut sebagai
~/Desktop/shutdown_script.sh
Jalankan skrip utama
Sekarang Anda merasakan skrip menunggu sesuatu
Periksa file bernama
AAAAAAAAAAAAAAAAAAAAAAAAAAA
di desktop Anda.Jika Anda melihat file semuanya OK. Sekarang Anda dapat mengedit
shutdown_script.sh
sesuai dengan kebutuhan Anda. Juga ingat untuk menjalankanexecute_script_on_shutdown.sh
login saat ini (atau membuatnya otomatis dieksekusi pada saat startup).sumber
Jika Anda ingin sesi Anda diblokir dalam semua keadaan, Anda memerlukan hak akses root. Tidak ada jalan lain untuk itu. Root pengguna selalu dapat
kill -9
memproses Anda. Saya terkejut bahwa shutdown tidak membuat gnome memancarkan sinyal "save-yourself". Juga saya percaya skrip "PostSession" hanya berjalan setelah sesi gnome telah berakhir dan (saya percaya) tepat sebelum Xserver berakhir, artinya itu bukan tempat di mana Anda ingin menaruh peringatan yang seharusnya muncul di layar (jika Saya benar).Apa yang mungkin berhasil adalah aplikasi Gnome yang a) bereaksi pada peristiwa gnome "save-yourself" DAN b) bereaksi pada SIGTERM dengan cara yang sama ia bereaksi terhadap "safe-yourself". Selain itu ada sedikit yang bisa Anda lakukan, terutama tanpa hak root.
Namun Anda dapat mengatasi masalah non-root: Tulis skrip PostSession yang melakukan apa yang Anda inginkan dan sarankan kepada seseorang dengan hak akses root untuk menyebarkannya di semua mesin karena itu adalah alat yang masuk akal yang membantu banyak pengguna. Biasanya orang-orang dengan hak akses root dibayar untuk membuat / membuat pengguna senang. :-)
Apa masalah yang Anda coba selesaikan? Mengapa Anda tidak bisa keluar dari sesi Anda ketika pendrive dicolokkan?
Anda dapat memiliki klien dbus yang menampilkan "Jangan lupa mencabut perangkat!" ketika gvfs mengumumkan pelepasan sistem file pada perangkat USB. Tetapi saya tidak tahu seberapa baik itu bekerja atau bahkan melayani tujuan Anda.
sumber
Saya akhirnya berhasil benar-benar menguji skrip Python yang saya sebutkan sebagai opsi kedua dalam pertanyaan saya. Ternyata hal itu tidak bekerja ketika meminta untuk ditutup juga, bukan hanya di reboot.
sumber