Anda dapat mengalihkan stdout
dan stderr
dari seluruh shell menggunakan script
pragma (bukan exec
) bersamaan dengan exec >FILE 2>&1
, seperti ini:
script
exec >/path/to/some_log_file 2>&1
exec your_command_here
end script
Mudah-mudahan itu akan memberi Anda wawasan yang lebih baik tentang apa yang terjadi. Saya menemukan ini berguna untuk menangkap semua jenis masalah di skrip pemula saya. Anda bisa pipa stdout
perintah Anda /stderr
secara langsung, tetapi Anda akan kehilangan kesalahan yang berasal dari shell (seperti kesalahan sintaksis).
Sebaliknya, jika service
menggantung, itu mungkin bahkan tidak mengenai skrip Anda, dalam hal ini tidak ada yang akan membantu, tentu saja.
Ada juga console log
deklaratif, sebagaimana didefinisikan di sini:http://upstart.ubuntu.com/cookbook/#console-log
Saya tidak cukup tahu tentang pemula untuk mengetahui apakah ini diaktifkan secara default, tetapi Anda dapat mengaktifkannya berdasarkan pekerjaan pemula, secara default akan menghasilkan /var/log/upstart/<job>.log