Bir komutu periyodik olarak çok kısa aralıklarla nasıl çalıştırabilir ve geri dönüşü alabilirim?


12

Yaklaşık 5 sn'lik bir aralıkta belirli bir komutu çağırmam gerekiyor. Arka planda çalışan bir daemon / süreç veya buna benzer bir şey nasıl ayarlayabilirim? Cronjobs'a baktım, ama minimum aralık 1 dakika gibi görünüyor. Herhangi bir tavsiye takdir edilir;)

Fedora sistemdir.

Komutu DÜZENLE bir bashscript olurdu, bu yüzden "izle" yapmazdım bence.

Yanıtlar:


10
(
  while true
  do
    your-command-here
    sleep 5
  done
) &
disown

reddedilme ne için? ya onsuz koşarsam?
Hans

@Marcel, disownson işi kabuk iş tablosundan kaldırır ve istediğiniz gibi bir tür arka plan programı yapar. Gerçek bir daemon değil, çünkü hala terminale bağlı ve aynı süreç grubunda, ancak kabuğu kapattıktan sonra çalışmaya devam edecek.
Juliano

tamam harika, bu işe yarayacaktı: D Sadece merak için nasıl bir daemon yapabilirim?
Hans

@Marcel basit yolu daemon'u (3) C'den veya kitaplık erişimi olan başka bir dilden (kabuk betiğinden değil ) çağırmaktır . Bu zor yol .
Juliano

14

Sizce 'izlemek' neden işe yaramaz?

$ cat periodic.sh
#!/bin/bash
echo $(date)
$ chmod +x periodic.sh

$ watch -n 5 ./periodic.sh

çıkış yaparsam ne olur? komut dosyası çalışmaya devam etmelidir.
Hans

Durur, ancak nohup watch -n 5 ./periodic.sh > periodic.log &çıktıyı kullanabilir ve saklayabilirsiniz.
naufraghi

borulama için inci sh -c "istenilen etkiyi elde etmek için alıntı ekstra kullanmak gerekebilir hangi vasıta '' komutu verilir" çünkü alıntı '' kullanmak
andrej

2

Belki nohup ile? Kabuk kapatıldıktan sonra bir işin çalışmasını sağlamak için tasarlanmıştır.

Ekranları da kullanabilirsiniz.


1

watchKomutu durumunda uygundur i (örn tmux, ekran, vs.) bir terminal multiplexer kullanmak ve daha sonra kullanarak komutu aday olacağını

watch -n 5 ./script.sh

Bu durumda, makineye terminal veya ssh bağlantısını kapatsanız bile komut dosyası çalışmaya devam eder.

Bu yaklaşımın tek sınırlaması, komut dosyasının ancak bu zaman aralığında yürütmesini tamamlaması durumunda her 5 saniyede bir çalıştırılmasıdır.


OP, görüşüne göre watchbunu yapmayacağını açıkça belirttiğinden , lütfen cevabınızın neden bu sınırlamanın üstesinden geldiğini veya hangi noktada OP'nin watchgörev için uygun olmadığı konusunda yanıldığını düşündüğünüzü açıklayın .
AdminBee
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.