Bir görev tamamlandıktan sonra bilgisayar nasıl kapatılır?


25

Genellikle okula gitmeden önce indirmeye başlarım.
Belli bir görev tamamlandıktan sonra gerekli kayıtları otomatik olarak yapmak ve bilgisayarı kapatmak için hangi komutu kullanmalıyım?
(Güncellemeleri yükledikten sonra veya büyük bir dosyayı indirdikten sonra söyleyin.)

Ayrıca askubuntu'da çapraz gönderim yaptım .

Yanıtlar:


25

İşe başlamana bağlı. Bazı komut satırı aracı ise basitçe haltya da çalıştırabilirsiniz shutdown -h now:

  1. wget http://..../somelargefile; halt- haltsonra idam edilecekwget

  2. wget http://..../somelargefile && halt- hata döndürmezse haltçalıştırılacakwget

  3. wget http://..../somelargefile || halt- halteğer wgetdönüş hataları olursa idam edilecek

Buna alternatif kullanıyor kshutdown- bu uygulamada hangi eylemin yapılması gerektiğini (yeniden başlatma / kapatma / hazırda bekletme / vb. Veya komut çalıştırma) ve ne zaman (bir süre sonra veya başka bir uygulamadan çıkıldığında) belirleyebilirsiniz. Bu aracı kullanmak istiyorsanız doğru işlemi seçmeniz gerekir - bazı güncelleme yardımcı programları birkaç alt işlemi başlatır.

KShutdown


4
shutdownBeklemek için bir zaman da verebilirsiniz ; Bu amaç için kshutdown kullanmaya gerek yok.
Cascabel

1
Hayır, ancak shutdowngerçek bir olayı beklemenin bir yolu yok.
Shadur

18

Her işlem, procdosya sistemindeki işlem kimliğine (pid) göre adlandırılmış bir dizine sahiptir . Bu nedenle, dizinin tekrar tekrar var olup olmadığını kontrol ederek belirli bir işlemin sonlandırılmasını bekleyebilirsiniz.

Bunu, böyle bir işlem sonlandırmasından sonra bir sistem kapatma işlemi gerçekleştirmek için kullanabilirsiniz (beklemek için 2296'yı değiştirin):

su -c 'while [[ -d /proc/2296 ]]; do sleep 1; done; poweroff'

Avantajları:

  • Shell komutunu kapattıktan sonra kapanıp kapanmayacağınıza karar verebilirsiniz.
  • Kapatma root olarak verilir, bekleyecek komut mutlaka root olarak yapılmaz (geç- sudopassword komut istemini geçici olarak çözmenize gerek yoktur ).

Dezavantajları:

  • İşleminiz sona erebilir ve işletim sistemi daha sonra o saniye içinde yeni ortaya çıkmış bir işlem için aynı ücreti kullanır (yarış durumu). Böylece, yeni sürecin sona ermesini beklemeye devam edersiniz.

2
Ana nokta: Bu işlem başlasa bile işe yarıyor.
Heisenberg

Hala psaynı terminalde açtığınız bir terminalden bir şey başlattıysanız , CMD için PID'yi bulmanıza yardımcı olacaktır. Eğer işlem başka bir terminalde ise, komut için filtrelemek için grep yoluyla her şeyin ps çıkışını ps -elf | grep <command_related_word>
seçmek,

pgrepAka süreç grep dayalı benim cevabı kontrol daha iyi ...
Gilles Quenot

Bu komutu arka plana nasıl koyabilirim?
DerWeh

1
@DerWeh Bir kabuk betiğine sarın ve burada verilen adımları izleyin: stackoverflow.com/q/625409/1025391
moooeeeep

3

&&Ve ||işleçlerini komutları birlikte zincirlemek için kullanabilirsiniz . Örneğin:

apt-get update && sleep 2 && init 0

yetenek kullanarak sistemde güncelleme yapacak, 2 saniye bekleyip, sisteminize bağlı olarak bu 0 seviyesine gidersiniz;

Muhtemelen bir web tarayıcısı indirmesi gibi daha rasgele bir işlemi izleyen bir veya daha fazla işlemle konuşmak için, indirme işleminin tamamlandığını doğrulamak için indirme dosyasını izlemek için ek bir mantık gerekir, ancak kabuk mantığının değişmediği belirtilir.



1

GUI'si ile sizin için yapabilen sentinella adında bir uygulama var: Sentinella

yüklemek için:

sudo aptitude update
sudo aptitude install sentinella
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.