Her gece yeniden başlatmayı nasıl programlayabilirim?


81

Belirli bir uygulamayı, XBMC çalıştıran bazı periyodik sorunları yaşıyorum. XBMC'yi düzenli kullanırsam herhangi bir sorunum yok gibi gözüküyor, ancak yaklaşık 12 saatten fazla bir süre gözetimsiz bırakırsam, tekrar çalışması için yeniden başlatmam gerekiyor.

Zamanlanmış bir yeniden başlatma cevabı DEĞİL biliyorum, ancak sorunu çözene kadar her sabah bir yeniden başlatma programı yapmam gerekiyor, böylece karım uzakta olursam ve pencereden atılmazsa kullanabilirim :)

Alıcılar var mı?

Yanıtlar:


133

Cron kullanırdım (zaten kurulmalıydı):

crontab'ı düzenle:

sudo crontab -e

Eğer (nano gibi) tercih editörü seçmeniz gerekebilir ilk kez

gibi bir satır ekleyin

0 4   *   *   *    /sbin/shutdown -r +5

altta. Açıklama:

m      h    dom        mon   dow       command
minute hour dayOfMonth Month dayOfWeek commandToRun

yani çizgi

  0 4   *   *   *    /sbin/shutdown -r +5

her gün 04:05 de sisteminizi yeniden başlatacak. (4:00 - 5 dakika)

Ctrl+ X, Y, Enter(Nano kullanılıyorsa) crontab'ın dışarı almak gerekir

Not: crontab -eroot olarak çalıştırmanız gerekebilir , çünkü kapatma root gerektirir. crontab -eGerçek crontab yerine / tmp dosyasını açar, böylece yeni crontab hatalarınızı kontrol edebilir. Hata yoksa, gerçek crontab'ınız güncellenecektir.


1
Bilgi için teşekkürler. Yapmam gereken tek şey benim için çalışmasını sağlamak için / sbin / shutdown komutunu değiştirmekti.

1
bu benim için işe yaramadı. ikisini de kullanarak crontab -eve sudo crontab -esen (örn /tmp/crontab.Y88XQl/crontab) çıkmak için gidip görev çalışmaz zaman geçici bir konuma dosya kaydeder. i doğrudan / etc / crontab düzenlemek zorunda kaldı
vel

@wal "crontab -e, gerçek crontab yerine / tmp dosyasını açar, böylece yeni crontab'ınızı hatalara karşı denetleyebilir ve bu hatalarla gerçek crontab'ınızın üzerine yazmanızı engelleyebilir. Hata yoksa, gerçek crontab'ınız güncellenecek." unix.stackexchange.com/questions/197504/…
Christh

14

/etc/cron.daily/zz-rebootÇalışması için buna ekleme :

#!/bin/sh
shutdown -r now

Ve sudo chmod a+x /etc/cron.daily/zz-reboot. "Zz" ön eki, bu dizindeki diğer tüm komut dosyalarından en sonda çalışmaya zorlar. /etc/crontabGünün hangi saatinde gerçekleşeceğini görmek için kontrol edin :

grep daily /etc/crontab | awk '{print $2 ":" $1}'

Bu işe yaramazsa, "normal" bir cron girişi üzerinden de çalışabilir sudo crontab -e

MINUTE HOUR * * * shutdown -r now

Ve son olarak, yalnızca bir defalık yeniden başlatmalar yapmak istiyorsanız, şunları kullanabilirsiniz at:

echo "shutdown -r now" | sudo at 04:30

bildiğim kadarıyla, her gün bu dosyayı oluşturduğunuzda sisteminizi yeniden başlatacak, lütfen
hatalıysam düzeltin

1
Tam olarak değil: cron.daily ne zaman çalışırsa çalışsın, günde bir kez yeniden başlayacaktır, bu biraz tahmin edilemez. anacronYüklemediyseniz, saat 06:25 yerel saatidir; bu normal olabilir (veya erken bir yükselticiyseniz korkunç olabilir). Bunu yaparsanız, varsayılan olduğunu düşünüyorum, makine her gün ilk kez açıldıktan 10 dakika sonra olabilir, bu da çılgına döner. Her halükarda cron.daily, buna uygun değil.
poolie,

her gece saat 6: 25'te sistemimde cron. Bu genellikle 06:00 ile 06:59 arasında rastgele bir dakikaya ayarlanır. Sisteminizdeki zaman için / etc / crontab'ınıza bakın
elzapp

1
Bunun için cron.daily'i kullanmanın en büyük sorunu cron.daily'daki diğer işleri engelleyebilmesidir.
elzapp

1

Kees Cook'un verdiği talimatları kullanarak bir senaryo oluşturmalısın ...

Aşağıdaki bilgileri herhangi bir metin düzenleyicide kopyalayıp yapıştırabilir ve zz-rebootdosyayı önerilen dizinde oluşturabilirsiniz .

Bundan sonra sadece dosyayı sağ tıklayın ve yürütme iznini atayın. Sadece terminali kullanarak yapmak istiyorsanız:

sudo chmod +x /etc/cron.daily/zz-reboot

İçinde unutmayın ne yaptığını daha iyi anlamak için /etcklasörün genellikle yapılandırma dosyaları bulmak ve orada bulabilirsiniz cron.hourly, cron.dailyve diğer cron klasörler. Cron, uygulamaları ve komut dosyasını belirli bir zamanda çalıştırmayı önemser.

Yeniden başlatma süresi konusunda kesin olmak istiyorsanız sadece rakam

sudo crontab -e

Böylece crontabkök kullanıcı için düzenleyebilirsiniz .

Grafik olarak yapmaktan daha iyi hissediyorsanız, Software Center GNOME programından kurulum yapabilirsiniz. gnome-scheduleKök kullanıcısını değiştirmek istiyorsanız , terminalden çalıştırdığınızdan emin olun:

gksudo gnome-schedule

Oynarken eğlenin! :)

ps: harika nokta sBlatt! cron.dailyİnfaz zamanını manuel olarak zorlamanın bir yolu olup olmadığını merak ediyordum .


/ Etc / crontab olarak orada zaman ayarlamak için bir giriştir, ancak bilgisayar şu anda kapalı olup olmadığını bilgisayar başladıktan sonra afaik, bazı dakika çalıştırır
sBlatt

1

İşimde yaklaşık bir aydır cronjobs ile çalışıyorum ve zamanlama gücümü arttırdım ve yeniden başladım. Çok basit. Bunun yaklaşık 5 yıl önce sorulduğunu biliyorum, ancak herhangi birisinin hala problemleri varsa, bu yöntemi kullanabilirsiniz ve siz de hazırlanacaksınız.

terminali açın (ctrl + T)

sudo nano /etc/crontab

sonuna kadar kaydırın ve aşağıdaki komutu girin

00 6 * * * root reboot 

bu, her gün saat 6'da yeniden başlatılmak üzere ayarlanmış ve enter tuşuna basın.

Her gün saat 23: 00’de poweroff programlamak isterseniz,

00 23 * * * root poweroff

Hala düştüğünde cronjob kullanarak bir makineye nasıl güç vereceğimi bulmaya ihtiyacım var. Bunu çözdükten sonra bu cevabı düzenleyeceğim.

PS, bu benim herhangi bir formdaki ilk gönderim; Birisi yardımcı olur umarım !! : D


3
Aynı içeriğe 5 yıl öncesinden, daha ayrıntılı ve otomatik sözdizimi doğrulaması (ile crontab -e) içeren bir cevap var .
David Foerster

1
Yeniden başlatmayı unutmayın cron:sudo /etc/init.d/cron restart
brcebn
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.