Yanıtlar:
Debian'da hizmet ve uygulama önyükleme ve kapatma komut dosyaları yerleştirilmelidir /etc/init.d/
.
Debian, /etc/init.d/skeleton
uygulamanız için zevkinize göre değiştirebileceğiniz örnek bir komut dosyası sağlar.
Yerleştirildikten sonra arayın:
# update-rc.d YOURAPP defaults
Debian'ın /etc/rc?.d/
sizin için simgeleri eklemesini sağlamak için.
Bir menü veya grafik arayüzü tercih ediyorsanız sysv-rc-conf
veya ksysv
paketine bakın.
Komut dosyanızı çıkış 0 yazan satırdan önce /etc/rc.local adresinden çağırabilirsiniz.
Uygulamanızı kapatmaya gelince, /etc/rc0.d dosyasına bir komut dosyası koymanızı öneririm . Büyük bir K harfi ve ardından bu komut dosyalarının çalıştırılma sırasını belirten 2 basamaklı bir sayı ve ardından bir ad ile adlandırmanız gerekir. "Stop" parametresiyle çağrılır, ancak bunu basit bir stop komut dosyası için yok sayabilirsiniz.
Başlangıçta için bir göz bu .
Kapatma için, bir bağlantı oluşturun / komut dosyanızı /etc/rcX.d klasörlerinden birine kopyalayın; burada X, yürütülmesini istediğiniz çalışma düzeyidir. 0 Debian için kapatma çalışma seviyesi olduğuna inanıyorum.
En kolay varolan komut dosyalarını değiştirmek, sistemimde çalışır, sesler için kullanılır :)
/etc/init.d/rc.local
, sh dosyanızı dosyanın sonuna ekleyin, önce: ("ekran" girişinden hemen önce çalıştırır)/etc/init.d/halt
, sh'nizi dosyanın başlangıcına, ilk yorumlardan hemen sonra ekleyin (bu komut dosyası tarafından çağrılan gerçek kapatma komutundan önce yürütülür)/etc/init.d/reboot
Debian Jessie'den bu yana, eski init
program yerini aldı systemd
!
Kendine bir bak. Koşun ls -l /sbin/init
ve neye işaret ettiğini görün. Bugünlerde daha yeni ve daha iyi bir başlatma programı olan systemd
( /sbin/init -> /lib/systemd/systemd
) işaret ediyor .
Yani BURADA SEÇİLEN VE DİĞER CEVAPLAR YAPILDI !!!
* Hala System-V araçlarıyla komut dosyalarını eski şekilde yükleyebilseniz de, genel olarak konuşmak iyi bir fikir değildir.
man systemd.service
diyor:*
Belirli bir ad altında bir hizmet istenir ancak birim yapılandırma dosyası bulunmazsa, systemd aynı ada sahip bir SysV başlangıç komut dosyası arar ... ve bu komut dosyasından dinamik olarak bir hizmet birimi oluşturur. Bu, SysV ile uyumluluk için kullanışlıdır. Bu uyumluluğun oldukça kapsamlı olduğunu ancak% 100 olmadığını unutmayın.
Düşündüğünden daha kolay. (-:
İşte önyükleme veya kapatma programlarını yüklemek için yeni ve tercih edilen yöntem.
İle systemd
size öncelikle bir oluşturmak istiyorum birim dosyası . Birim dosyası kod değil, çoğunlukla bildirimlerdir.
Ardından bu birimi etkinleştirmek veya başlatmak için systemctl
komutu kullanırsınız .
systemd
örneğin, kritik bir programın çökmesi veya başka bir şekilde öldürülmesi durumunda otomatik olarak yeniden başlatılmasını kolaylaştırır. Ayrıca, programınız nerede ve ne zaman varsayılan olarak sizin tarafınızdan ekstra bir çalışma olmadan kapatır.
systemd
Burada öğrenmeye başlayın :
Debian itibaren ve başka yerlerde ve vs ve vb .
Başlamak için man sayfaları:
man systemd.unit
- Genel olarak birim dosyaları hakkında
man systemd.service
- Daimons ve tek çalışma programları gibi hizmet birimi dosyaları hakkında.
man systemctl
- Komut satırı kullanıcı arayüzü
man journalctl
- Systemd'in ne yaptığını görün
man systemd
- Init programının kendisi hakkında
Ayrıca başka türdeki birim dosyaları da vardır;
man systemd.target
- gruplar ve ortak senkronize edilmiş hedefler için.
Yukarıdaki temel bilgileri sindirdikten sonra, man -k systemd
ilgili diğer man sayfalarını bulmak için ile kazın .
Ne yaparsanız yapın, Debian'da bunlardan hiçbirini kullanmayın :
update-rc.d
- System-V stili başlangıç komut dosyası bağlantılarını yükleme ve kaldırmasysv-rc-conf
- SysV gibi init komut dosyası bağlantıları için çalışma düzeyi yapılandırmasırunlevel
- Önceki ve mevcut SysV çalışma seviyesini yazdırBUM
- B oot U p M anager - bir grafik çalışma seviyesi düzenleyicisystemadm
- Sistem sistemi ve servis yöneticisi için grafiksel ön uç Bu birim dosyası, önyükleme yaptığımda NoIP.com arka plan programını başlatır ve kapattığımda kapatır.
Bu cini, zaman zaman, benim DDNS (güncellemek için benim mevcut IP adresini gönderir D inamik DNS ( D OMain N ame S o geçecek yerde böylece bilgisayarıma benim alan adı işaret tutarak erver)) sağlayıcısının veri tabanı.
Bu birim dosyaları sistemimde şu ayarlar dosyasında bulunur: /etc/systemd/system/noip2.service
Birim dosyasında neler var:
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
Bir birim dosyasını manuel olarak çalıştırın (örn. Test için):
$ sudo systemctl start noip2
. $ sudo systemctl restart noip2
. $ sudo systemctl stop noip2
. Sistemi başlatırken veya kapatırken otomatik olarak bir birim dosyası çalıştıracak şekilde yapılandırın :
$ sudo systemctl enable noip2
. $ sudo systemctl disable noip2
.Günlüğü görüntüle
$ sudo journalctl -u noip2