Saya memiliki pekerjaan sebagai berikut /etc/init/collector
:
start on runlevel [2345]
stop on runlevel [!2345]
expect daemon
exec /usr/bin/twistd -y /path/to/my/tac/file
Ketika saya memulai pekerjaan sudo service collector start
, itu hang. Jika saya ctrl-c
dan lari initctl list
, saya melihat ini:
collector start/killed, process 616
Saya tidak bisa melihat contoh twistd
daemon di ps, dan server HTTP yang seharusnya disediakannya tidak ada.
Saya bahkan mencoba ini tanpa 'mengharapkan daemon' dan dengan panggilan sederhana ke skrip bash satu baris menggunakan script
bait, dan itu masih tidak berhasil. Saya pikir saya melakukan sesuatu yang sangat salah. Apa itu?
expect daemon
garis.Jawaban:
Anda dapat mengarahkan
stdout
danstderr
seluruh shell menggunakanscript
pragma (bukanexec
) bersamaanexec >FILE 2>&1
, seperti:Mudah-mudahan itu akan memberi Anda wawasan yang lebih baik tentang apa yang terjadi. Saya menemukan ini berguna untuk menangkap semua jenis masalah dalam skrip pemula saya. Anda dapat mem-pipe perintah
stdout
/stderr
secara langsung, tetapi Anda akan kehilangan kesalahan yang berasal dari shell (seperti kesalahan sintaksis).Di sisi lain, jika
service
digantung, itu mungkin bahkan tidak mengenai skrip Anda, dalam hal ini tentu saja tidak ada yang membantu.sumber
logger
, sehingga saya hanya bisa mengekor/var/log/syslog
.dmesg
. Saya menemukan ini setelah saya tidak mendapatkan output apa pun ketika menggunakan di atas. Saya telah membuat kesalahan ketik di arahan chdir.Ada juga
console log
deklaratif, seperti yang didefinisikan di sini: http://upstart.ubuntu.com/cookbook/#console-logSaya tidak cukup tahu tentang pemula untuk mengetahui apakah itu diaktifkan secara default, tetapi Anda dapat mengaktifkannya berdasarkan pekerjaan per pemula, itu akan secara default output ke
/var/log/upstart/<job>.log
sumber
Validasi bahwa sutradara pemula ada, dan tambahkan log konsol sebelum fase skrip. (dalam versi pemula baru kemudian 1,4 itu default)
log konsol
skrip exec> / path / ke / some_log_file 2> & 1 exec skrip your_command_di sini
Untuk info lebih lanjut, periksa utas: /ubuntu/207143/how-to-diagnose-upstart-errors/932155#932155
sumber