1. 背景
コンパニオンはシステム環境を頻繁に更新するため、reboot コマンドを使用して頻繁に再起動する必要がありますが、バックエンド Jar は再起動するたびに停止し、Web バックエンド Jar パッケージは再起動するたびに手動で起動する必要があります。 。この状況を受けて、時間を節約するために起動時に Jar パッケージを自動的に起動する方法を使用することを考えました。
2. 詳細な手順
1. コンピュータの電源を入れたときに自動的に実行するコマンドを記述します。
スクリプトをインストールするディレクトリに移動し、次のコマンドを実行してスクリプトの内容を編集します。
vim start.sh
たとえば、起動後に Jar パッケージを自動的に起動したいと考えており、その内容は次のとおりです。
#!/bin/bash
export JAVA_HOME=lib/jvm/java-1.8.0-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
cd /home/work/
#source /etc/profile
echo "jar 包开始部署"
nohup java -jar web.jar >/home/work/nohup.out 2>&1 &
echo "部署命令已执行"
スクリプト コンテンツのエクスポート行は、Java 環境を提供するためのものです。スクリプトの実行後も java コマンドが見つからない場合は、jar package コマンドを実行する前に、上記のコード セグメント内のsource /etc/profile を実行する必要があります。(/etc/profileにJAVA_HOME、PATH、CLASSPATH等の環境変数が設定されていることが前提です)
2. 権限付与スクリプト
後で実行できないように、スクリプトの権限をリセットする必要があります。
chmod 777 start.sh
3. 開始する新しいサービス ファイルを作成します
vim /etc/systemd/system/start.service
start.service で以下を編集します
[Unit]
Description=***************** //你对这个服务的描述
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/start.sh //刚才创建的start.sh路径
[Install]
WantedBy=multi-user.target
4. カスタマイズしたばかりのサービス ファイルをシステムに取得させ、起動時に開始するように設定します。
systemctl daemon-reload
systemctl start start.service
5. ログを表示する
起動に成功した場合はプロンプト情報は表示されませんが、起動に失敗した場合は、次のコマンドを使用してサービスの状態を確認する必要があります。プロンプト情報に従って変更します。
systemctl status start.service
来て!この問題はほぼ解決されました!今日はとてもいい表情してますね!お水を飲みに行きましょう〜