Centos 7はまだ新しく、初期の経験のほとんどはUbuntuで行われました。私はCentos 7でアプリケーションを設定し、その製品のWebサイトでそのアプリケーションをLinuxサービス(システムの起動時に起動)として実行するためにこのスクリプトを使用する必要があることがわかりました。
#! /bin/sh
export JAVA_HOME="/usr/lib/jvm/jdk1.7.0_07"
startcmd='<PRODUCT_HOME>/bin/listener_mm.sh start > /dev/null &'
restartcmd='<PRODUCT_HOME>/bin/listener_mm.sh restart > /dev/null &'
stopcmd='<PRODUCT_HOME>/bin/listener_mm.sh stop > /dev/null &'
case "$1" in
start)
echo "Starting the Listener Server ..."
su -c "${startcmd}" user1
;;
restart)
echo "Re-starting the Listener Server ..."
su -c "${restartcmd}" user1
;;
stop)
echo "Stopping the Listener Server ..."
su -c "${stopcmd}" user1
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
ハハesacが他のディストリビューションに限定されないことを願っています:?
だから私はスクリプトを生成し、私の環境に応じて正しい値を置き換え、私のスクリプトにシンボリックリンクを追加しました。いくつかの質問があります。 1)上記のスクリプトはUbuntuまたは他のLinuxディストリビューションで動作できます。それでは、スクリプトを変更する必要がありますか? 2)すべてのユーザーのためのサービスとして実行するにはどうすればよいですか?システム起動時に起動したい。 Debian / Ubuntuにはupdate-rc.dがありますが、これにはchkconfigを使用する必要があるようです。これについてのアドバイスはありますか?あいにく特別な機能がない機械なので少し実験してみましたが、経験のある方がアドバイスをいただくと良いようです。
systemdに関するいくつかの記事を読んでいますが、助けてくれてありがとう。
たくさんありがとうございます。
さあ、MM
ベストアンサー1
CentOS 7、Fedora、および最新バージョンのUbuntuで起動時に何かを実行するにはシステム装置。問題は、不要になったレガシー初期化スクリプトです。
単純な単位ファイルは次のとおりです。
[Service]
Type=simple
ExecStart=/bin/myservice
[Install]
WantedBy=multi-user.target
フォアグラウンドで実行すると仮定すると、/bin/myservice
上記の内容は実際に必要なものです。/etc/systemd/system/myservice.service
自分のシステムに設定したり、/usr/lib/systemd/system/myservice.service
配布用のパッケージを構築したりする場合は、次のように入力して次のことを実行できます。
- サービスをすぐに開始するには:
systemctl start myservice
- 次回の起動時にサービスが自動的に開始されることを示すには、次の手順に従います。
systemctl enable myservice
chkconfig
などのツールupdate-rc.d
は従来のツールであり、systemdを実行している環境には必要ありません。