Di sini saya memiliki aplikasi yang di-deploy ke linux, saya ingin aplikasi itu mulai secara otomatis ketika linux mulai. Saya menggunakan perintah seperti 'sudo ./start'
untuk memulai aplikasi.
Bagaimana cara melakukannya?
OS:CentOS 6
Jawaban yang Diterima:
Saya tidak dapat merekomendasikan untuk menambahkan sesuatu di /etc/rc.local
. Ini adalah peninggalan masa lalu unix. Ada Linux yang tidak lagi mendukung rc.local
.
Namun, Ini dapat memulai aplikasi/layanan Anda dengan benar, tetapi tidak pernah menutup proses Anda dengan baik.
Lebih baik menggunakan mekanisme skrip init sistem sendiri (Systemd, Upstart, ...). Saya akan menulis skrip rc yang terlihat seperti ini (mungkin ada kerangka/templat di sistem Anda di /etc/init.d/skeleton
):
#!/bin/bash
. /etc/init.d/functions
start() {
echo -n "Starting <servicename>: "
#/path/to/the/executable/of/your/application
}
stop() {
echo -n "Shutting down <servicename>: "
#command_to_gracefully_end_the_application
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
#command_to_report_the_status
;;
restart)
stop
start
;;
*)
echo "Usage: <servicename> {start|stop|restart}"
exit 1
;;
esac
exit $?
Tempatkan skrip Anda di /etc/init.d/, buat agar dapat dieksekusi dan tambahkan ke sistem runlevel 3, 4 dan 5:
chkconfig --level 345 <servicename> on
Anda juga dapat memulai dan menghentikannya secara manual dengan:
service <servicename> start
service <servicename> stop