Sisteme giriş yapmadan önce bir işlem çalıştırmam gerekiyor. Hizmetler gibi nasıl çalıştırılır? Linux'ta nasıl servis yapabilirim?
Ubuntu ve Fedora'da mı? Hizmet özelleştirilmiş
Sisteme giriş yapmadan önce bir işlem çalıştırmam gerekiyor. Hizmetler gibi nasıl çalıştırılır? Linux'ta nasıl servis yapabilirim?
Ubuntu ve Fedora'da mı? Hizmet özelleştirilmiş
Yanıtlar:
Bir hizmeti sisteme giriş yapmadan veya giriş yapmadan önce çalıştırmak için (yani "önyüklemede"), bir başlangıç betiği oluşturmanız ve önyükleme sırasına eklemeniz gerekir.
Hizmet betiğinin üç bölümü vardır: Başlat, durdur ve yeniden başlat.
Bir servis betiğinin temel yapısı:
#!/bin/bash
#
RETVAL=0;
start() {
echo “Starting <Service>”
}
stop() {
echo “Stopping <Service>”
}
restart() {
stop
start
}
case “$1″ in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $”Usage: $0 {start|stop|restart}”
exit 1
esac
exit $RETVAL
Komut dosyasını istediğiniz gibi ayarladıktan sonra, /etc/init.d/ içine koymanız yeterlidir,
ve bunu sistem hizmeti başlatma işlemine ekleyin (Fedora'da, Ubuntu kullanıcısı değilim> D):
chkconfig -add <ServiceName>
Sistem önyükleme işlemine servis eklenecek ve manuel olarak yeniden başlatmanız gerekmeyecek.
Şerefe!
İnit sistemine bağlı olarak, init betiğini farklı şekilde yaratırsınız. Fedora size başlangıç ve sistem seçimi ve tabii ki SysV uyumluluğu sunar.
/etc/init/custom-tomcat.conf
içine koymak:
start on stopped rc RUNLEVEL=3
respawn
exec /path/to/your/tomcat --and --parameters
Ve Tomcat'ınız sistemin başlatılmasıyla başlamalıdır.
/etc/systemd/system/custom-tomcat.service
içine koymak:
[Service]
ExecStart=/path/to/your/tomcat --and --parameters
Restart=always
[Install]
WantedBy=multi-user.target
ve kullanarak hizmetinizi etkinleştirin systemctl enable custom-tomcat.service
. Her normal açılışta başlayacaktır.
Elbette her iki init sistemi için de birkaç konfigürasyon seçeneği var, bunları dokümanlarında kontrol edebilirsiniz.
Tomcat oldukça yaygın bir hizmettir, dağıtımın sağladığı init betiğine bakmanızı öneririm. Muhtemelen tweaking ile az veya hiç, özelleştirilmiş ikili ile çalışır.
Bir cron
daemonunuz varsa , önceden tanımlanmış cron zaman kancalarından biri @reboot
, sistem başladığında doğal olarak çalışandır. Dosyanızı crontab -e
düzenlemek için çalıştırın crontab
ve bir satır ekleyin:
@reboot /your/command/here
Aşağıdaki gibi, belirli bir kullanıcının izinleri altında çalışmanıza izin veren daha karmaşık bir komut dosyası yapabilirsiniz:
#!/bin/sh
NAME=myservice
DESC="My Service"
USERGROUP="myservice:myservice"
#Helper functions
start() {
start-stop-daemon --start --quiet --background --make-pidfile \
--pidfile /var/run/$NAME.pid --chuid $USERGROUP \
--exec /usr/local/bin/myservice
}
stop() {
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec myservice --retry 30
}
case "$1" in
start)
echo -n "Starting $DESC: "
start
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
stop
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
#set +e
stop
#set -e
#sleep 1
start
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
Komut dosyası /etc/init.d/myservice dizinine girerek servisi yürütün:
/etc/init.d/myservice start
Nasıl çalıştığını anlamak için start-stop-daemon'daki man sayfasını okuyun.
Ubuntu veya Debian'da istediğiniz gibi kullanabilirsiniz.
update-rc.d your_service defaults
ayırmak
update-rc.d -f your_service remove
Hoşçakal! \O
fonksiyonların durumunu uygulamak güzel ve LSB uyumlu olması için zorla yeniden yükle
service --status-all
listede görünmesi nasıl yapılır ?