SORU
24 Kasım 2011, PERŞEMBE


Nasıl bir süreç start-stop-daemon tarafından başlatılan stdout oturum açabilir miyim?

Başlatma komut dosyası ile başlatılan basit bir işlemi çalıştırmak için kullanıyorum:

start-stop-daemon --start --quiet --chuid $DAEMONUSER    \
    --make-pidfile --pidfile $PIDFILE --background       \
    --exec $DAEMON $DAEMON_ARGS

İşlemi $DAEMON denilen genellikle standart çıktıya günlük bilgileri yazdırır. Söyleyebileceğim kadarıyla, bu verileri her yerde depolanıyor olabilir.

Ya da bir dosya için $DAEMON stdout bir yere yazmak eklemek istiyorum.

Söylemek için bildiğim tek çözüm-stop-daemon start $DAEMON doğrudan yerine bir shellscript aramak için; komut dosyası $DAEMON aramaları ve günlük dosyasına yazar. Ama bu, daemon kendini değiştirme gibi, böyle ortak bir görev çözmek için yanlış bir yol gibi görünüyor ekstra bir komut dosyası gerektirir.

CEVAP
9 Ocak 2014, PERŞEMBE


Bana yorum izin vermez beri ypocat cevabı genişletmek için:

start-stop-daemon --start --quiet --chuid $DAEMONUSER    \
 --make-pidfile --pidfile $PIDFILE --background       \
 --startas /bin/bash -- -c "exec $DAEMON $DAEMON_ARGS > /var/log/some.log 2>&1"

exec programı çalıştırmak için kullanarak durdurmak doğru alt süreci durdurmak için sadece bash üst yerine sağlar.

--exec yerine --startas kullanma işlemi düzgün kendi pıd tarafından tespit edilmesini sağlayan ve başla, eğer birden çok kez çağrılırsa, yanlışlıkla daemon birden çok örneğini çalışmıyor. Aksi takdirde, start-stop-daemon /bin/bash bir işlem için bakmak ve gerçek alt işlem paketlerini göz ardı eder.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006