ここでは、Linuxにアプリケーションをデプロイしていますが、Linuxの起動時にアプリを自動的に起動させたいと考えています。 'sudo ./start'
のようなコマンドを使用しています アプリケーションを開始します。
どうすればよいですか?
OS:CentOS 6
承認された回答:
/etc/rc.local
に追加することはお勧めできません 。それは昔のUNIX時代の遺物です。 rc.local
をサポートしなくなったLinuxがあります 。
ただし、アプリケーション/サービスを正しく開始することはできますが、プロセスを正常にシャットダウンすることはありません。
initスクリプトのシステム独自のメカニズム(Systemd、Upstartなど)を使用することをお勧めします。このようなrcスクリプトを作成します(システムの/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 $?
スクリプトを/etc/init.d/に配置し、実行可能にして、システムのランレベル3、4、および5に追加します。
chkconfig --level 345 <servicename> on
また、手動で開始および停止することもできます:
service <servicename> start
service <servicename> stop