Bagaimana saya bisa mengkonfigurasi layanan untuk dijalankan saat startup

244

Saya memiliki daemon yang berfungsi dengan baik jika saya memulainya secara manual dengan serviceperintah:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

tetapi itu tidak dikonfigurasikan untuk mulai secara otomatis ketika PC reboot.

Bagaimana saya dapat mengkonfigurasi untuk memulai secara otomatis, bahkan jika tidak ada yang login ke PC?

Ricardo Reyes
sumber
@ user154721 Argumen apa yang Anda berikan pembaruan-rc.d untuk membuat autostart berfungsi? Saya sudah mencoba berbagai opsi tetapi belum berhasil.
BennyTheBen
Program mulai otomatis dikonfigurasikan dalam autostartmanifes atau *.servicefile di beberapa lokasi, serta di init.datau crontab. Lihat: unix.stackexchange.com/a/525845/43233
Noam Manos

Jawaban:

281
sudo update-rc.d minidlna defaults

Ini harus menambahkan layanan ke sistem startup otomatis. Tetapi jika Anda mendapatkan:

System start/stop links for /etc/init.d/minidlna already exist.

Lakukan perintah

sudo update-rc.d minidlna enable

PS : Untuk detail lebih lanjut lihat halaman manual untuk pembaruan-rc.d dengan mengetikkan perintahman update-rc.d

LassePoulsen
sumber
7
terima kasih, tetapi bagaimana jika saya mendapatkan output ini ketika menjalankan perintah itu ?:System start/stop links for /etc/init.d/minidlna already exist.
Ricardo Reyes
1
jika minidlna tidak menulis ke logfile apa pun, Anda tidak akan menemukannya di mana pun. Apakah itu mungkin gagal karena tidak ada koneksi jaringan ketika dimulai? Coba lihat konfigurasi jika memungkinkan nyalakan debugging dan / atau logging untuk mencari tahu apa yang salah.
LassePoulsen
8
@RicardoReyes gunakan sudo update-rc.d -f minidlna removeuntuk menghapus tautan yang ada.
Dogweather
5
Saya mendapatkan di bawah ini kesalahan update-rc.d: /etc/init.d/usermanage: file tidak ada
Rizwan Patel
2
Saya juga, mendapat kesalahan yang sama update-rc.d: /etc/init.d/mongod: file does not exist. Kemudian, sudo systemctl enable mongod.servicebekerja untuk saya.
penjelajah
36

Terkadang Anda perlu menjalankan skrip pada proses boot, misalnya menjalankan konfigurasi iptables saat proses boot. Jadi, Anda tidak harus menjalankan skrip secara manual setiap me-reboot.

Anda dapat menjalankan skrip saat proses boot di Ubuntu dengan menambahkannya ke /etc/init.d/rc.localfile. Lihatlah langkah-langkah di bawah ini.

  1. Buka /etc/rc.localfile dengan perintah ini:

    vim /etc/rc.local
    
  2. Tambahkan skrip yang ingin Anda jalankan pada proses boot di sana, misalnya:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Tinjau komentar yang disertakan dalam file itu dan pastikan keluar 0 di akhir.

  4. Simpan file. Dan skrip Anda akan berjalan saat proses boot.

hhlp
sumber
2
Komentar dari /etc/init.d/rc.local di Ubuntu 12.04 mengatakan "Deskripsi Singkat: Jalankan /etc/rc.local jika ada", jadi mungkin menambahkan skrip ke /etc/rc.local akan menjadi ide yang lebih baik?
Sanghyun Lee
Apakah metode ini mengeluarkan perintah "shutdown" ke layanan atau hanya mematikan proses setelah OS shutdown?
Vadim Chekan
Vadim, rc.local hanya dijalankan saat boot, tidak ada yang dicapai saat shutdown. Prosesnya kemungkinan besar akan dibunuh oleh OS pada saat shutdown.
Weboide
1
FYI: Perbedaan antara rc.localvs menambahkannya ke init, adalah bahwa rc.local dieksekusi pada akhir urutan startup init, bukan sebagai bagian dari itu
BobTuckerman
35
  • Untuk memulai daemon saat startup:

    update-rc.d service_name defaults
    
  • Untuk menghapus:

    update-rc.d -f service_name remove
    

defaults>> level run standar 2,3,4 dan 5

Contoh:

update-rc.d tomcat7 defaults
Lakal Malimage
sumber
1
Ketika saya melakukan perintah ini, saya mendapatkan "System start / stop links untuk /etc/init.d/tomcat7 sudah ada". Namun, ketika saya reboot, itu tidak memulai tomcat, saya selalu harus melakukan "service tomcat7 start".
John Little
dalam kasus saya, sudo update-rc.d default layanan saya selalu selesai tanpa output dan layanan tidak akan mulai saat boot-up atau dengan layanan sudo mulai layanan saya yang juga selesai secara diam-diam. sudo /etc/init.d/myservice mulai berfungsi
axk
13

Sejak Ubuntu 15.10 (resp. Debian 8 "jessie"), Anda harus menggunakan perintah berikut untuk mengonfigurasi layanan Anda minidlnaagar berjalan saat startup:

sudo systemctl enable minidlna.service

Dan untuk menonaktifkannya lagi dari mulai saat boot:

sudo systemctl disable minidlna.service

Ini berfungsi dengan semua referensi nama layanan yang dapat Anda temukan ls /lib/systemd/system/*.service.

tanius
sumber