Ubuntu 10,04
Saya telah membuat skrip pemula ini ( /etc/init/pure-ftpd.conf ):
# pure-ftpd - FTP server
description "Pure-FTPd server"
start on filesystem
stop on runlevel S
respawn
respawn limit 10 5
pid file /var/run/pure-ftpd.pid
console output
pre-start script
test -x /usr/local/sbin/pure-ftpd || { stop; exit 0; }
end script
exec /usr/local/sbin/pure-ftpd --maxclientsnumber 2 --maxclientsperip 10 --prohibitdotfileswrite --prohibitdotfilesread --noanonymous --chrooteveryone --dontresolve --nochmod --pidfile /var/run/pure-ftpd.pid
Tapi...
# start pure-ftpd
start: Unknown job: pure-ftpd
dan
# service pure-ftpd start
start: Unknown job: pure-ftpd
Apa masalahnya?
Apakah perlu melakukan sesuatu yang lebih?
Apakah perlu untuk membuat satu skrip di /etc/init.d juga?
Jawaban:
Biasanya berarti Anda memiliki kesalahan dalam
.conf
file - misalnya saya tidak yakinpid
bait didukung pada 10,04,stop
tidak dapat digunakan dalam skrip dll.Saya akan mencoba memulai file dari awal (hanya dengan
start
,stop
dll), dan kemudian perlahan-lahan membangunnya dengan menambahkan lebih banyak garis dan mengujinya melaluistart pure-ftpd
.Sebagai contoh:
sumber
pid
bait telah dihapus sejak versi0.5.0 2008-08-12 "One of those deaf-mutes"
. Jangan gunakan itu.Anda juga dapat menjalankan
init-checkconf
untuk memeriksa sintaksissumber
start
perintah sehingga memberi Anda pesan kesalahan yang lebih informatif ...Pertama, Anda dapat memeriksa apakah pekerjaan Anda benar-benar dikenal sebagai pemula:
... di mana
your_job_name
nama skrip pemula Anda dikurangi.conf
ekstensi.Jika tidak ditemukan, Anda dapat mencoba memuat ulang konfigurasi dan kemudian memeriksa kembali:
Kemudian coba lagi untuk memulai pekerjaan Anda:
Jika Anda tidak masuk
/var/log/daemon.log
atau/var/log/syslog
sebelumnya, Anda mungkin memiliki beberapa sekarang.sumber
Referensi yang paling relevan untuk sintaks file pekerjaan akan tersedia ketika Anda menjalankan perintah:
di sistem Anda. Untuk Ubuntu 10,04, seperti yang Anda temukan di jawaban sebelumnya, sintaks file pid salah.
Setiap kali Anda mendapatkan kesalahan 'pekerjaan tidak dikenal "kembali, itu ide yang baik untuk memeriksa log (pra 11.04, /var/log/daemon.log, 11,04 dan lebih besar semuanya berjalan di / var / log / syslog)
Anda mungkin melihat kesalahan seperti ini:
sumber
Lagi pula saya di sini karena saya memiliki masalah yang sama, tetapi sintaks saya 100% benar.
Setelah debugging saya menemukan masalah lain yang dapat menyebabkan kesalahan "Pekerjaan tidak dikenal" ini :
pemula menggunakan inotify untuk memantau perubahan file .conf dan menginstal pekerjaan secara otomatis, ini sangat keren (untuk ini Anda tidak perlu sesuatu seperti update.rc dengan pemula!) tetapi bisa tidak sempurna jika Anda (seperti saya dalam kasus itu) menggunakan beberapa program FTP / SCP GUI untuk mengunggah dan mengedit konfigurasi pada server jarak jauh, pekerjaan itu dapat dihapus secara diam-diam oleh pemula ketika Anda mengedit file dengan cara itu.
untuk memperbaikinya cukup lakukan itu (itu menyelamatkan saya)
itu akan menghasilkan acara yang tidak sah untuk menyegarkan semua peserta baru.
sumber
Saya memiliki masalah yang sama di wadah Docker Ubuntu 14.04 saya. Ternyata, gambar Ubuntu 14.04 (jika bukan yang lain) untuk Docker tidak mendukung Upstart dengan cara yang sama seperti mesin virtual penuh.
Untuk menjawab pertanyaan ini, mengapa layanan tidak dimulai, itu karena initctl bukan program pemula yang sebenarnya: itu dipetakan ke / bin / true.
Untuk memverifikasi, jalankan yang berikut di wadah Docker Ubuntu 14.04 vs. Vagrant, dan vs. tetesan DigitalOcean
Anda akan melihat initctl tidak sama di Docker vs yang lain.
Tautan yang dapat meningkatkan pemahaman Anda .. https://github.com/docker/docker/issues/1024
sumber