Bir hizmeti başlangıçta çalışacak şekilde nasıl yapılandırabilirim?


244

El ile servicekomutunu kullanarak başlatırsam, iyi çalışan bir arka planım var :

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

ancak bilgisayar yeniden başlatıldığında otomatik olarak başlatılacak şekilde yapılandırılmamıştır.

Bilgisayara hiç kimse giriş yapmamış olsa bile otomatik olarak başlaması için nasıl yapılandırabilirim?


@ user154721 autostart'ın çalışması için update-rc.d dosyasına hangi argümanları verdiniz? Çeşitli seçenekler denedim ama hiç şansım olmadı.
BennyTheBen

Otomatik başlatma programları yapılandırılmış autostartmanifestolarına veya *.serviceyanı olduğu gibi, çeşitli konumlarda dosya init.dveya crontab. Bakınız: unix.stackexchange.com/a/525845/43233
Noam Manos

Yanıtlar:


281
sudo update-rc.d minidlna defaults

Bu servisi otomatik başlatma sistemine eklemelidir. Ama eğer alırsan:

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

Komutu yapmak

sudo update-rc.d minidlna enable

Not : Daha fazla ayrıntı için komutu yazarak update-rc.d için man sayfasına bakın.man update-rc.d


7
teşekkürler, ama bu emri çalıştırırken bu çıktıyı alırsam ne olur ?:System start/stop links for /etc/init.d/minidlna already exist.
Ricardo Reyes

1
minidlna herhangi bir günlük dosyasına yazmadıysa, hiçbir yerde bulamazsınız. Başlatıldığında ağ bağlantısı olmadığı için başarısız olabilir mi? Neyin yanlış olduğunu bulmak için hata ayıklamayı ve / veya günlük kaydını açmanın mümkün olup olmadığını görmeye çalışın.
LassePoulsen

8
@RicardoReyes sudo update-rc.d -f minidlna removemevcut bağlantıları kaldırmak için kullanır .
Dogweather

5
Hata-rc.d hata alıyorum: /etc/init.d/usermanage: dosya mevcut değil
Rizwan Patel

2
Ben de aynı hatayı aldım update-rc.d: /etc/init.d/mongod: file does not exist. Sonra sudo systemctl enable mongod.servicebenim için çalıştı.
explorer

36

Bazen önyükleme işleminde bir komut dosyası çalıştırmanız gerekir; örneğin önyükleme işleminde bir iptables config çalıştırın. Böylece her yeniden başlatmadan komut dosyasını elle çalıştırmanız gerekmez.

Komut dosyanızı önyükleme işleminde Ubuntu'da /etc/init.d/rc.localdosyaya ekleyerek çalıştırabilirsiniz . Aşağıdaki adımlara bakın.

  1. /etc/rc.localDosyayı bu komutla aç :

    vim /etc/rc.local
    
  2. Önyükleme işleminde çalıştırmak istediğiniz komut dosyasını orada ekleyin; örneğin:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Bu dosyada bulunan yorumları gözden geçirin ve sonunda bir çıkış 0 olduğundan emin olun.

  4. Dosyaları sakla. Komut dosyanız önyükleme işleminde çalışır.


2
Ubuntu 12.04'te /etc/init.d/rc.local tarafından yapılan yorumlar "Kısa Açıklama: Varsa /etc/rc.local komutunu çalıştırın", bu yüzden /etc/rc.local komut dosyalarını eklemek daha iyi bir fikir olabilir mi?
Sanghyun Lee,

Bu yöntem servise "kapatma" komutunu verir mi yoksa işletim sistemi kapatıldıktan sonra işlemi sonlandırır mı?
Vadim Chekan

Vadim, rc.local sadece açılışta çalıştırılıyor, kapatma konusunda hiçbir şey elde edilemiyor. Sürecin büyük olasılıkla işletim sistemi tarafından kapatıldığı zaman öldürülecekti.
Weboide

1
FYI: rc.localinit'e ekleme ile vs arasındaki fark , rc.local'in init başlatma sırasının sonunda değil, bir parçası olarak
yürütülmesidir

35
  • Başlangıçta bir arka plan programı başlatmak için:

    update-rc.d service_name defaults
    
  • Ayırmak, uzaklaştırmak, ortadan kaldırmak:

    update-rc.d -f service_name remove
    

defaults => varsayılan çalışma seviyeleri 2,3,4 ve 5

Örnek:

update-rc.d tomcat7 defaults

1
Bu komutu yaptığımda "/etc/init.d/tomcat7 için sistem başlatma / durdurma bağlantıları zaten var" alıyorum. Ancak, yeniden başlattığımda, tomcat'ı başlatmıyor, daima "service tomcat7 start" yapmak zorundayım.
John Little

benim durumumda sudo update-rc.d myservice varsayılanı her zaman çıktı vermeden tamamlanır ve servis açılışta başlamaz veya sudo servis myservice başlatılırken de sessizce tamamlanır. sudo /etc/init.d/myservice start işe yarıyor ancak
axk

13

Ubuntu 15.10'dan beri (sırasıyla Debian 8 "jessie"), hizmetinizi minidlnabaşlangıçta çalışacak şekilde yapılandırmak için aşağıdaki komutu kullanmanız gerekir :

sudo systemctl enable minidlna.service

Ve önyükleme sırasında başlamasını tekrar devre dışı bırakmak için:

sudo systemctl disable minidlna.service

Bu, bulabileceğiniz tüm servis adı referanslarıyla çalışır ls /lib/systemd/system/*.service.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.