Komut satırından nasıl hazırda bekleme durumuna alabilir / askıya alabilirim ve belirli bir zamanda bunu nasıl yapabilirim


36

Komut satırından sistemin nasıl askıya alındığını / hazırda bekletildiğini öğrenmeyi başardım Komut satırından nasıl askıya alınabilir / hazırda bekletebilirim? .

Ancak, komut satırını belirli bir zamanda, mutlak (örnek, 11:00) veya göreceli (örneğin, 30 dakika içinde) terimlerle askıya almak / hazırda bekletmek için nasıl kullanılacağını bilmek isterim.

Bunu kapatma ile nasıl yapacağımı zaten biliyorum, ancak komutun benzer olup olmadığına eminim.

Yanıtlar:


43

atHerhangi bir eylemi planlamak için komutu kullanabilirsiniz; bu soruda ayrıntılı olarak verilen komutları çalıştırmak da dahil .

Örneğin, 30 dakika içinde hazırda bekletmek istiyorsanız:

echo 'pmi action hibernate' | at now + 30 min

Veya saat 11: 00’de askıya almak istiyorsanız:

echo 'pmi action suspend' | at 11pm

Eğer bir komutu çalıştırmak gerekiyorsa rootçalıştırın atile sudoyerine komut kendisi sudo(beri sudoŞifrenizin istemeye değil bunu yapılandırılmış ettik sürece sadece etkileşimli çalıştırılmalıdır). Örneğin, yukarıdaki komutların eşdeğerleri pm-hibernateve pm-suspendkullanılarak:

echo pm-hibernate | sudo at now + 30 min

echo pm-suspend | sudo at 11pm


Her iki durumun da istendiğini aldığınız için teşekkür ederiz ... Bunu da yansıtacak şekilde başlığı değiştirdim. Her iki durumu da şimdi içerecek şekilde cevabımı değiştirdim.
cprofitt 13:11

İşleri nasıl temizleyebileceğim hakkında bir fikrin var mı?
KhoPhi,

2
@Rexford atrmKomut, tarafından yaratılan işleri siler at.
Eliah Kagan

9

Göreceli belirtim için (örneğin "30 dakika sonra") sleep, askıya alma / hazırda bekletme komutunu bekletmek için yalnızca komutu kullanabilirsiniz .


Örnekler:

30 dakika bekleyin, sonra askıya alın:

sudo sleep 30m; sudo pm-suspend

1 saat bekledikten sonra hazırda bekletme:

sudo sleep 1h; sudo pm-hibernate

Ben de bu yaklaşımı seviyorum.
KhoPhi,

2
1 saat sonra pm-hibernatetekrar root için bir şifre isteyin ve askıya alma gerçekleşmez.
Vitaly Zdanevich

Bir şifre sorulmasını önlemek için root olarak giriş yapmaya ne dersiniz?
banan3'14

4

Belirli zamanlar için tekrarlanan - bilgisayarların kapatılması gibi her gün belirli bir zaman. cron kullanın.

crontab -e

aşağıdakileri ekleyin:

15 14 1 * * pmi action suspend

Özelleştirmek istiyorsanız.

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

Bir defalık iş için bize at komutu

Örneğin, 30 dakika içinde hazırda bekletmek istiyorsanız:

echo 'pmi action hibernate' | at now + 30 min

Veya saat 11: 00’de askıya almak istiyorsanız:

echo 'pmi action suspend' | at 11pm

2
Kullanılması cronamaç askıya alabilir veya günün belirli bir zamanda hazırda iyi bir çözüm, ya da belirli bir haftanın hangi günü ya da ayın veya yıla belirli bir zaman almaktadır. Ancak, Ederico'nın sorduğu gibi görünen (ve bunu yapmak daha mantıklı olan bir şey olan) tek bir askıya alma veya hazırda bekletme modu ayarlamak için atkomut kullanılmalıdır. (Tek bir etkinliği cron, örneğin sedveya kullanarak awkancak ilgili son derece karmaşık ve gereksiz; kullanımı kullanarak olayın ilgili crontab'ı düzenlemesini sağlayarak yapabilirsiniz at.)
Eliah Kagan

Sorunun istediği göreceli terimlere uymuyor, sadece belirli programlar için yararlı.
Bruno Pereira,

Evet, bu talep edilen 'belirli bir zaman' için bir örnekti. "Ancak, komut satırını belirli bir zamanda askıya almak / hazırda bekletmek için nasıl kullanılacağını bilmek istiyorum (örneğin,
11:00

1
Yanıtınızı nasıl kullanacağınız hakkında bilgi eklemek için düzenlediniz at, ancak eklediğiniz bilgiler ne yazık ki doğru değil. <Operatör metni yönlendirir dosyası veya cihaza da sola belirtilen komut için standart girişe onun sağında belirtildi. ( Benim cevabımdaki gibi ) <yerine kullanmak istersen , içeriğini (veya ) içeren bir dosya yapmalısın . Böyle bir karmaşıklık burada daha iyi hale getirir . |pmi action suspendpmi action hibernate|
Eliah Kagan

Genel bir kılavuz olarak, (örneğin ) ' catnın solunda bir komutunuz olduğunda , bunu bir ifade ( ) ile değiştirebilirsiniz . Ancak a'nın solunda bir komut olduğunda , bu önemsiz bir ifadeyle değiştirilemez . |cat foo | bar<bar < fooecho|<
Eliah Kagan
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.