Untuk beberapa alasan, saya mendapatkan pesan kesalahan saat peningkatan versi, yang penyebabnya adalah
% sudo service apport start
start: Job failed to start
Di bawah sysvinit, saya bisa men-debug masalah seperti ini dengan menjalankan mis
sudo sh -x /etc/init.d/whatever start
tapi itu tampaknya tidak memetakan ke Pemula. Apa yang harus saya coba selanjutnya?
Ternyata ada solusi yang akan membiarkan instalasi dilanjutkan. Tapi saya masih tertarik dengan pertanyaan umum tentang bagaimana orang akan melacak skrip.
/var/log/syslog
.Jawaban:
Semua informasi berikut (dan bantuan Pemula yang jauh lebih bermanfaat) berasal dari The Upstart Cookbook . Bagian 18 meliputi debugging. http://upstart.ubuntu.com/cookbook/#debugging
Dalam kasus khusus ini melacak bait "skrip" dari pekerjaan pemula, Anda harus menambahkan baris berikut tepat di bawah kata "skrip":
Alasan untuk lokasi yang ganjil adalah bahwa /dev/.initramfs/ tersedia di boot paling awal, sebelum sistem file root telah dimuat, dan terus tersedia setelah boot. Saya menebak dengan apport, namun, Anda mungkin tidak perlu menggunakan jalur itu. Namun, senang mengetahui opsi itu.
Perlu juga dicatat bahwa semua skrip dijalankan dengan
set -e
sehingga perintah apa pun yang gagal akan keluar sepenuhnya dari skrip. Yang masuk akal, karena orang harus sangat berhati-hati ketika menjalankan skrip sebagai root.Saya sangat merekomendasikan untuk membaca Buku Pustaka pemula yang terhubung di atas secara umum untuk siapa saja yang bekerja dengan pekerjaan pemula.
sumber
set -x
seperti yang Anda sarankan. Saya kebanyakan bertanya-tanya apakah ada cara yang lebih bersih untuk melakukannya.setuid
dansetgid
digunakan dalam pekerjaan.Mulai baru eksekusi layanan Anda dalam file log dengan nama yang sama di
/var/log/upstart/your-service-name.log
. Itu harus membantu.sumber
set -x
mungkin akan muncul di sana.journalctl