Jalankan skrip sebelum dimatikan

21

Ketika saya mematikan komputer saya, saya ingin menunjukkan beberapa tugas yang tertunda yang harus saya lakukan sebelum meninggalkan kantor ... Saya melakukan aplikasi lokal untuk mengelola tugas-tugas itu, pada dasarnya saya hanya ingin menjalankan perintah, dan mematikan setelah saya membunuh aplikasi dieksekusi.

juanefren
sumber
Semoga bermanfaat bagi pengguna di masa mendatang: askubuntu.com/a/747556/295286
Sergiy Kolodyazhnyy

Jawaban:

7

Anda bisa menambahkan perintah Anda ke file /etc/gdm/PostSession/Defaultsebelum exit 0baris.

popey
sumber
Jika saya pergi ke "Log Out" opsi itu dijalankan dengan baik, Tapi Jika saya tekan shutdown muncul layar ubout ungu ubuntu seketika dan mengeksekusi script (di layar di mana muncul logo ubuntu dengan 5 bola kecil). (diuji dengan tidur 20).
juanefren
Dialog "Apakah Anda yakin ingin mematikan" terletak di sini: / usr / lib / indikator-sesi / gtk-logout-helper dan bagian dari paket penyihir sesi-indikator ditulis dalam C / C ++ sehingga cukup sulit untuk sunting. Anda mungkin lebih beruntung bertanya di milis gnome-guru;)
LassePoulsen
6

Anda dapat melakukan ini dengan membuat skrip di /etc/rc0.d (untuk shutdown) dan /etc/rc6.d (untuk reboot). Untuk melakukan ini, jalankan:

gksu gedit /etc/rc0.d/K01mycustomscript

Edit skrip shutdown Anda di editor teks lalu jalankan:

sudo chmod +x /etc/rc0.d/K01mycustomscript

Dan jika Anda ingin menjalankannya di reboot juga maka jalankan ini:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

Sumber: utas forum ini

dv3500ea
sumber
Dari deskripsinya, sepertinya dia ingin menjalankan aplikasi grafis, jadi itu membutuhkan akses ke xserver. Dalam hal ini menggunakan skrip init tidak berfungsi.
sepp2k
1
Ya ... seperti yang dikatakan @ sepp2k, skrip berjalan di luar xserver :(
juanefren
4

Kedengarannya seperti pertanyaan untuk superuser.com bagi saya. Lagi pula, setelah beberapa Googling saya menemukan Cara menjalankan skrip pada saat logout? yang mengatakan untuk menambahkan skrip ke $ HOME / .bash_logout.

Jika itu tidak berhasil, tambahkan

$HOME/.bash_logout

ke / etc / gdm / PostSession / Default sehingga menjalankan skrip logout dengan benar.

Melihat sebelum mematikan, pengguna tetap logout, ini harus mencakup kedua pangkalan.

myusuf3
sumber
1
Karena dia mungkin tidak ingin skrip dijalankan setiap kali, dia log out dari bash (yaitu setiap kali dia menutup jendela terminal), saya tidak berpikir itu ide yang baik untuk menulis perintah ke .bash_logout. Namun menulisnya ke PostSession / Default sepertinya ide yang bagus untuk saya.
sepp2k
Sudah memiliki file ini, tetapi sepertinya itu tidak berfungsi (saya menidurkan 20 dan tidak menunggu untuk shutdown.)
juanefren
.bash_logout tidak akan berjalan ketika Anda menutup terminal, itu hanya akan berjalan ketika Anda logout dari sesi terminal-login (mis. jika Anda keluar realTTY) dan tidak ketika Anda keluar dari gnome.
LassePoulsen
Mengapa ini menjadi pertanyaan bagi pengguna super? Jika pertanyaannya adalah tentang Ubuntu, itu tentang topik.
NN
2

Jika Anda melakukannya ./app-to-run && sudo shutdown -h now, komputer harus dimatikan setelah aplikasi dijalankan.

Tommy Brunn
sumber
1
Ini akan menjadi penutupan yang sangat kasar. Anda lebih suka memanggil skrip shutdown desktop sebagai gantinya.
txwikinger
Sudo mungkin meminta pengguna untuk mengetikkan kata sandi jika app-to-run cukup lama ... Jadi tidak akan pernah ditutup.
samb
1

Jawaban yang hampir sama dari Tommy Brunn tetapi tanpa risiko hang dengan ditanyai kata sandi root:

sudo sh -c "./app-to-run; shutdown -h now"
samb
sumber