Kapatmadan önce komut dosyasını yürütün


21

Bilgisayarımı kapattığımda ofisten çıkmadan önce yapmam gereken bazı bekleyen işleri göstermek istiyorum ... Bu işleri yönetmek için yerel bir uygulama yaptım, temel olarak sadece bir komut çalıştırmak ve öldürdükten sonra kapatmak istiyorum Uygulamanın idam edildi.


Gelecekteki kullanıcılar için yararlı olabilir: askubuntu.com/a/747556/295286
Sergiy Kolodyazhnyy

Yanıtlar:


7

Komutunuzu satırdan /etc/gdm/PostSession/Defaultönce dosyaya ekleyebilirsiniz exit 0.


Eğer "Log Out" seçeneğine gidersem para cezası uygulanır, ancak kapatma düğmesine basarsam neredeyse anında ubuntu mor çıkış ekranı görünür ve betiği çalıştırır (ekranda 5 küçük top ile ubuntu logosu görünür). (uyku 20 ile test edilmiştir).
juanefren

"Kapatmak istediğinizden emin misiniz" iletişim kutusu burada bulunur: / usr / lib / indication-session / gtk-logout-helper ve gösterge oturumu paketi cadısının bir kısmı C / C ++ dilinde yazılmıştır Düzenle. Daha şans bazı gnome-guru mail listesine de soran olabilir;)
LassePoulsen

6

Bunu /etc/rc0.d (kapatma için) ve /etc/rc6.d (yeniden başlatma için) içinde bir komut dosyası oluşturarak yapabilirsiniz. Bunu yapmak için koşun:

gksu gedit /etc/rc0.d/K01mycustomscript

Kapatma komut dosyanızı metin düzenleyicide düzenleyin ve ardından şunları çalıştırın:

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

Ve yeniden başlatmada çalışmasını istiyorsanız, o zaman şunu çalıştırın:

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

Kaynak: bu forum konusu


Açıklamasına bakıldığında, grafiksel bir uygulama çağırmak istediğini duyduğu için xserver'a erişmesi gerekiyor. Bu durumda init-script kullanmak işe yaramaz.
sepp2k

1
Evet ... @ sepp2k'ın dediği gibi, komut dosyası xserver dışında çalışıyor :(
juanefren

4

Bana superuser.com için bir soru gibi geliyor. Her neyse, bazı Googling'ten sonra Çıkışta bir komut dosyasını nasıl çalıştıracağımı buldum? bu komut dosyasını $ HOME / .bash_logout dosyasına eklemeyi söylüyor.

Bu işe yaramazsa, ekle

$HOME/.bash_logout

/ etc / gdm / PostSession / Default komutuna göre logout komut dosyasını doğru bir şekilde çalıştırır.

Kapatmadan önce olduğu gibi, kullanıcının yine de oturumu kapattığını görünce, bu her iki tabanı da kapsamalıdır.


1
Muhtemelen senaryonun her seferinde çalıştırılmasını istemediğinden, bash oturumunu kapatır (yani bir terminal penceresini her kapattığında), komutu .bash_logout'a yazmanın iyi bir fikir olduğunu sanmıyorum. Ancak bunu PostSession / Default'a yazmak bana iyi bir fikir gibi geliyor.
sepp2k

Zaten bu dosya var, ama çalışmıyor gibi görünüyor (20 uyku koydum ve kapanmayı beklemiyordum.)
juanefren

.bash_logout bir terminali kapattığınızda çalışmaz, sadece bir terminal oturum açma oturumundan (yani, eğer bir realTTY oturumunu kapatırsanız) ve gnome oturumu kapattığınızda çalıştırılmaz.
LassePoulsen,

Bu neden süper kullanıcı için bir soru olsun ki? Eğer soru Ubuntu ile ilgiliyse konuyla ilgili.
NN

2

Bunu yaparsanız ./app-to-run && sudo shutdown -h now, uygulamanın çalışması bittikten sonra bilgisayarın kapatılması gerekir.


1
Bu çok kaba bir kapanma olurdu. Bunun yerine masaüstü kapatma komut dosyasını çağırmayı tercih edersiniz.
txwikinger

Kullanıcı, uygulamanın çalıştırılması yeterince uzun sürerse, kullanıcının şifreyi girmesini isteyebilir ... Bu yüzden asla kapanmaz.
samb

1

Neredeyse Tommy Brunn ile aynı cevap, ancak root şifresi sorulma riskiyle asılma riski:

sudo sh -c "./app-to-run; shutdown -h now"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.