Bagaimana cara menginstal skrip init.d?

71

Saya mencoba menginstal skrip init.d, untuk menjalankan seledri untuk tugas penjadwalan. Inilah langkah-langkah yang saya ikuti:

  • menyalin file seleryd dan menempelnya di folder /etc/init.d/
  • membuat seleryd file konfigurasi di folder / etc / default /

sekarang ketika saya mencoba memulainya sudo /etc/init.d/celeryd start, itu melempar kesalahansudo: /etc/init.d/celeryd: command not found

Saya mencari di Google tentang cara menginstal init.d, saya mendapatkan pertanyaan SO ini .

ia mengatakan untuk mengeluarkan uname -adan ketika saya melakukannya saya mendapatkan ini:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

dan juga dikatakan menggunakan utils insservuntuk mengaktifkan skrip init.d jadi dicoba:

insserv /etc/init.d/celeryd tapi itu melempar kesalahan insserv: command not found

jadi saya mencoba menginstal insserv sudo apt-get install insserv . tetapi dikatakan aleady diinstal:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

Jadi bagaimana cara menginstal skrip init.d ?? Bantuan apa pun akan dihargai.

pembaruan1:

ketika saya mencoba:

$ sh -x /etc/init.d/celeryd start

itu mengungkapkan beberapa errors. mungkin itu sebabnya layanan tidak akan mulai.

pembaruan2:

Saya menghapus semua kesalahan ketika saya menjalankan $ sh -x /etc/init.d/celeryd starttetapi masih sudo /etc/init.d/celeryd startmelempar command not foundkesalahan

suhailvs
sumber
Saya tidak punya waktu untuk jawaban sekarang, tetapi, jika Anda ingin ini dijalankan sebagai bagian dari startup Anda, maka saya pikir Anda harus menambahkan tautan ke skrip Anda di berbagai direktori runlevel sehingga Linux akan menangani memulai dan menghentikannya untuk kamu. (/etc/rc[0-6[.d) Proses ini secara berangsur-angsur digantikan oleh metode yang lebih baru (saya pikir itu disebut pemula), tapi saya belum melihat itu sama sekali. Tautan di pos Anda membahas beberapa hal ini.
Joe

Jawaban:

55

celerydSkrip Anda mungkin tidak dapat dieksekusi, itu sebabnya sudo /etc/init.d/celerydkembali command not found. Jadi, Anda harus terlebih dahulu membuatnya dapat dieksekusi.

Untuk melakukannya, jalankan perintah berikut:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

Baris pertama mengubah izin -rwxr-xr-x, dan baris kedua memastikan bahwa pemilik dan pemilik grup file tersebut root.

Setelah ini selesai, saya menganggap Anda perlu menggunakan sudo /etc/init.d/celeryd startuntuk memulai daemon.

Alaa Ali
sumber
70

Saat Anda menyalin skrip ke tempatnya, jangan lupa untuk membuatnya dapat dieksekusi dan dimiliki oleh root:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

Setelah Anda menginstalnya, Anda dapat mengaturnya untuk mulai secara otomatis saat boot dengan:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable
David Purdue
sumber
Ini akan dianggap sebagai jawaban terbaik, karena menunjuk ke update-rc.d.
MAChitgarha
3

Jika Anda mendapatkan command not foundkesalahan saat menjalankan insserv, Anda dapat memperbaikinya dengan menjalankan perintah berikut:

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

Kemudian lihat insserv -hatau man insservminta bantuan.

Anda juga dapat mencoba:

sudo update-rc.d celeryd defaults

Sumber: https://askubuntu.com/a/334043/147044

Radu Rădeanu
sumber
1

Ini adalah urutan perintah untuk menjalankan ulang daemon Anda saat boot:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
Oleg Bondar '
sumber