Bagaimana cara mendapatkan output dari pekerjaan pemula ketika masuk melalui SSH?

10

Untuk memantau apa yang definisi pekerjaan saya lakukan, saya ingin melihat output teks dari pekerjaan. Tampaknya tidak mungkin ketika saya masuk melalui SSH.

Saya mengalami masalah dengan Natty 11.04 ini, tetapi saya yakin ini adalah masalah yang lebih umum.

File pekerjaan sederhana yang saya gunakan (nama file /etc/init/test.conf):

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

Tujuan saya adalah untuk melihat teks "Gotcha ..." ketika melakukan initctl emit testatau initctl start test. Tapi itu tidak berhasil.

Apa yang saya coba sejauh ini:

  • "output konsol" bukan "pemilik konsol"
  • "exec / bin / echo Gotcha ..." alih-alih skrip ... akhiri skrip
Binarus
sumber

Jawaban:

8

Karena init (pid 1) menjalankan layanan (yang tidak memiliki stdout / stderr) dan bukan shell Anda (seperti dengan /etc/init.dskrip gaya lama ), saat ini tidak ada cara untuk melihat output yang dihasilkan. (Fitur ini sering diminta dan ada dalam daftar hal yang harus dilakukan untuk pemula.)

Untuk mengatasi ini, saya sarankan memaksa redirection output pada awal pekerjaan itu sendiri:

script
    exec >/var/log/test.debug 2>&1
    echo Gotcha...
end script
Kees Cook
sumber
16

Pada 12,04 (Mungkin sebelumnya), secara default, pemula akan login ke file di bawah / var / log / pemula baru / dengan output dari pekerjaan

Dokumentasi terkini dari pemula (pada Cookbook)

Anda kemudian dapat mengekor file itu untuk melihat semua teks baru yang sedang ditulis ke file tersebut

Sebagai contoh:

tail -f /var/log/upstart/test.log & # tail the output
initctl emit test
Dave Butler
sumber