8 saat sonra bir komutu vermenin basit bir yolu nedir? Bu şekilde düşünebilirim:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Daha uygun bir yolu var mı?
8 saat sonra bir komutu vermenin basit bir yolu nedir? Bu şekilde düşünebilirim:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Daha uygun bir yolu var mı?
Yanıtlar:
atKomutu kullanabilirsiniz . atDaha sonra komutları yürütün. Yardımcı atprogram, standart girdilerden gelen komutları okuyacak ve daha sonra yürütülmesi için bunları bir iş başında olarak gruplandırmalıdır.
Genellikle, atUbuntu'da varsayılan olarak kurulur, ancak yayınınız içermiyorsa, aşağıdakiler yoluyla yükleyin:
sudo apt-get install at
Daha fazla bilgi için, seçenekler, örnekler ve diğerleri, Ubuntu Manpage Deposuna bakın.
Örnek:
at now +8 hours -f ~/myscript.sh
Ayrıca, tomorrowya da gibi uygun kısayollar da kullanabilirsiniz noon.
echo "tweet fore" | at teatime
Uyarı: Bu komut derhal borunun soluna gönderilir,ancak daha sonra çıkışını gösterir. Örnek ayrıca, eylemleri nasıl içine aktarabileceğinizi de gösterirat. at -caşağıdaki gibi, numaralarıyla kolayca listeleyebileceğiniz zamanlanmış eylemleri inceleyebilmenizin yolu:
at -c 3
at now +8 hours -f ~/myscript.sh
at 8:00komutu mutlak bir zamanda çalıştırmak ve batch"bilgisayar boştaymış gibi göründüğü zaman" için vardır
teatime4 de. Bazı nedenlerden dolayı manpages.ubuntu.com/manpages/raring/man1/at.1posix.html adresinde bahsedilmemiştir, ancak içinde man atve burada manpages.ubuntu.com/manpages/raring/tr/man1/at.1.html adresinde bulunur .
gpio write 8 1ancak derhal yürütüldü.
Evet, bir cron işi ayarlayabilirsiniz.
Örneğin, şimdi saat 14:39:00 ve bugün Cuma, 30 Ağustos ise, aşağıdaki cron işini (8 saat sonra yürütülecek) crontab -ekomutunu kullanarak crontab dosyanıza ekleyebilirsiniz :
39 22 30 8 5 /path/to/mycommand.sh
Hakkında daha ayrıntılı:
crontabSiz kaldırana kadar komut sizin tarafınızda kalacaktır . Bir yıl sonra, onu nereye koyduğunu ve niçin koyduğunu unuttuğunuzda, komutla ne yapacağınızı merak ederek başınızı tırmalamaya başlayacaksınız.
İçin Gnome tabanlı GUI kullanın cron, atve benzeri:
CronHowto'nun tanıtımı, gnome-scheduletüm çöpleri terminale yazmaktan çok daha güzel olan gui'nin kullanılmasını önermektedir (özellikle "güç" olmayan "ortalama" Ubuntu kullanıcıları * nix / bsd kullanıcıları için).
Zamanlanmış Görevleri aramak veya çalıştırmak için Unity Dash (veya diğer uygulamalar menüsünü) kullanarak çalıştırın gnome-schedule.
Gnome tabanlı Ubuntu sistemlerinde Uygulamalar -> Sistem Araçları'ndaki Gnome Zamanlanmış görevler aracı (gnome-zamanlama paketinden) Cron kullanmaya başlamanızı isteyen grafiksel bir arayüz sağlar. Proje web sitesi http://gnome-schedule.sourceforge.net/ adresindedir ; Yazılım, Yazılım Merkezi'nden veya yazarak yüklenebilir
sudo apt-get install gnome-schedulebir terminalde.
Kullanılması gnome-scheduleev dizininde bir komut dosyası için, "at" yeni bir komut penceresinde bu tür kullanarak kurulacaktı:

Bir şey olduğunu öğrenmeden önce bunu yapmanın hızlı ve kirli bir yolunu buldum at.
Senaryonun öğlen saatlerinde çalışmasını istediğini söyle:
until [[ "$(date)" =~ "12:00:" ]]; do
sleep 10
done
./mycommand.sh
Yarın öğlen koşmak istediğinizi söyleyin (bugün 24 Kasım benim için):
until [[ "$(date)" =~ "25 12:00:" ]]; do
sleep 30
done
./mycommand.sh
Güncelleme : Biraz daha iyi bir yöntem: Sadece umursadığınız sayıları test edin date +FORMAT:
until [[ $(date +%H:%M) == 21:06 ]]; do
...
at, cronya da başka herhangi gerçek zamanlayıcı uygulaması. Görev zamanlaması zor ve yeniden icat etmeniz gereken bir tekerlek değil.
at.
at, işlerinin yeniden başlatılmaya devam etmesi .
nohup+ İle ilgili bir sorun mu varsleep? Neden "uygunsuz"?