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

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • Microsoft Help & Training Videos

    Microsoft He

    31 Mart 2009
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011