SSH ile giriş yaptığınızda, uptart işlerinden çıktı nasıl alınır?


10

İş tanımlarımın ne yaptığını izlemek için işlerden metin çıktısı görmek istiyorum. SSH üzerinden oturum açtığımda bu mümkün görünmüyor.

Natty 11.04 ile bu sorunu yaşıyorum, ancak bunun daha yaygın olduğuna ikna oldum.

Kullandığım basit bir iş dosyası (dosya adı /etc/init/test.conf):

description "test"
start on test
console owner
kill timeout 5
task
script
  /bin/echo Gotcha...
end script

Amacım yaparken metin "Yakaladım ..." görmektir initctl emit testveya initctl start test. Ama bu işe yaramıyor.

Şimdiye kadar denedim:

  • "konsol sahibi" yerine "konsol çıkışı"
  • script yerine "exec / bin / echo Gotcha ..."

Yanıtlar:


8

İnit (pid 1), kabuğunuzu değil (eski /etc/init.dstil komut dosyalarında olduğu gibi) hizmeti (stdout / stderr içermeyen ) çalıştırdığından, şu anda üretilen çıktıyı görmenin bir yolu yoktur. (Bu özellik sıklıkla istenir ve Upstart için yapılması gerekenler listesinde bulunur.)

Bu soruna geçici bir çözüm bulmak için, işin başlangıcında çıktı yönlendirmesini zorlamanızı öneririz:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script

16

12.04'ten (Muhtemelen daha önce), varsayılan olarak upstart, / var / log / upstart / altındaki bir dosyaya işten herhangi bir çıktıyla oturum açacaktır

Upstart'ın güncel belgeleri (Yemek Kitabı'nda)

Daha sonra dosyaya yazılan tüm yeni metinleri görmek için bu dosyayı kuyruğa alabilirsiniz

Örneğin:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
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.