これには、Linuxにデプロイされたアプリケーションがあり、Linuxが起動したときにアプリケーションが自動的に起動したいと思います。'sudo ./start'
アプリケーションの起動などのコマンドを使用しています。どうすればいいですか?
オペレーティングシステム:CentOS 6
答え1
私はそれをお勧めしません/etc/rc.local
。これは昔のUnix時代の遺物です。一部のLinuxはサポートされなくなりましたrc.local
。
ただし、アプリケーション/サービスは正しく開始できますが、プロセスは正常に終了しません。
システム自体の初期化スクリプトメカニズムシステム、突然現れる,...).次の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
答え2
/etc/rc.local
ほとんどのLinuxはシステム起動時に一度実行されます。エディタでこのファイルを開き、コマンドを追加してアプリケーションを起動します。
sudo
スクリプトは root として実行されるため、コマンドの前にプレフィックスを付ける必要はありません。
バックグラウンドでコマンドを実行するには、コマンドの最後に「&」(アンパサンド)を追加する必要があります。これにより、アプリケーションが一度にコマンドを完了できない場合にシステムが起動するのを防ぎます。
myscript
次のファイルを実行する例/usr/local/bin/
# place near the end of /etc/rc.local
/usr/local/bin/myscript &
答え3
cronを使うと私には効果的でした。
# enter crontab edit
crontab -e
# place this inside the cron file you opened with the previous command
@reboot /path/to/your/script.sh