
私はLinuxを初めて使用し、コンピュータの起動時に.shファイルを起動する方法を知りたいです。デフォルトでは、Linux OSがインストールされているサーバーシステムがあり、システムが再起動/衝突したときにいくつかのjbossアプリケーションを実行したいと思います。
S99jBossServers
rc2.dにリンクを追加し、/etc/rc.d/init.d/jBossServers.sh
フル権限を付与しました(777)。jBossServers.sh
内容jBossServers.sh
は次のとおりです
#!/bin/sh
#
# chkconfig: 2345 80 30
# description:
#
RETVAL=0
start () {
/root/batch/startSikkimCA.sh
/root/batch/startSikkimSp.sh
}
stop () {
/root/batch/stopSikkimCA.sh
/root/batch/stopSikkimSp.sh
RETVAL=$?
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
start
;;
*)
start
;;
RETVAL=$?
esac
exit $RETVAL
正しいかどうかはわかりませんが、そこに2つのパスが参照されています。
開始()と停止()
正確ですが、コンピュータを再起動してもアプリケーションは起動しません。
答え1
答え2
スクリプトが起動していることを確認してください(例:スクリプトをtouch /var/tmp/startup.script
中に入れてください)。パッチの検索開始時にスクリプト内のすべてのコマンドはありますか?
ランレベル2は私に奇妙に見えます。 GUIがないLinuxの場合は3で十分です。どのディストリビューションとバージョンを使用していますか?
答え3
/etc/inittab
このようなラインを探していますid:3:initdefault:
。数字は3または5ですが、2または4です。この行の数字はデフォルトの実行レベルです。 2ではない可能性が高いため、rc2.dのスクリプトは実行されません。
その行の番号と一致するrcN.dディレクトリにスクリプトを置きますinitdefault
。
原則として、rc.localはより良い選択ですが、rc.localはdistroによって異なります(時にはディレクトリ、時にはスクリプト、時にはまったく設定されていない)。だから、ディストロを知らなくても状況はもっと簡単ですか?正しいランレベルに入れますか?man rc.local
システムに表示される内容を確認できます。システムがrc.localをディレクトリとしてサポートしている場合は、スクリプトをそのディレクトリに配置し、実行レベルについて心配しないでください。
また、スクリプトがroot所有であり、権限が755(誰でも実行できるようにする場合)または744であることを確認してください。
答え4
起動スクリプトの追加
この方法は、Red Hat、Fedora、Ubuntu(インストールパッケージのchkconfigとサービス)、およびSuseに適しています。
スクリプトを/etc/init.dにコピーする必要があります(正しいディレクトリまたは正しいディレクトリへのリンクなので、同じように機能します)。
sudo cp jBossServers.sh /etc/init.d/
sudo chmod 0755 /etc/init.d/jBossServers.sh
その後、システム起動プロセスに追加する必要があります。必要なすべてのリンクを生成する代わりにchkconfigを使用してください(まずUbuntuにパッケージをインストールしてください)。
sudo chkconfig add jBossServers.sh
次に、実行レベルと優先順位情報に関する chkconfig がすでに含まれているスクリプトのタイトルをお読みください。だからあなたは良いです。 JBoosは次の再起動時に起動します。
しかし今始めてもいいです。
sudo service jBossServers.sh start
注:システムがchkconfigまたはサービスを見つけることができないと文句を言う場合は、まず/sbin/を使用して呼び出してみてください。はい
sudo /sbin/chkconfig add jBossServers.sh
sudo /sbin/service jBossServers.sh start