systemctl start / stop service:Ubuntu、CentOS、RedhatLinuxでUpstartスクリプトとRespawnプロセスをセットアップする方法
公開: 2021-06-09systemdのスタートアップスクリプトを書く方法は?
systemd
は、Ubuntu OS、Redhat OS、CentOSなどの最新バージョンのLinuxディストリビューションすべてに含まれる最新のservice management utility
です。
そのため、Ubuntu17.4およびRedhat7.4バージョンは、upstartスクリプトとしてsystemctl command
をサポートするようになりました。 古いバージョンのLinuxOSを使用している場合は、このページの下部を見て、古いinit.d script
を確認する必要があります。
このチュートリアルでは、以下のことについて説明します
- systemdサービスユニットのセットアップ
- systemdを
configure
方法は? - systemdを
enable
にする方法は? - systemdを使用してプロセスを自動的に開始するにはどうすればよいですか?
- systemdを使用してプロセスを停止して
respawn
する方法は?
このチュートリアルのセットアップ手順:
Prerequisite:
/tmp/crunchify
フォルダーにCrunchifyAlwaysRunningProgram.javaプログラムのバージョンをコンパイルしました。 このJavaプロセスは、バックグラウンドで永久に実行され続けます。 ここからプログラムをダウンロードできます。
ダウンロードしたらtry to compile
して実行し、機能することを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
CTRL + C
を入力してプログラムを終了できます。
それでは、上記のプログラムのsystemd自動起動スクリプトの設定を始めましょう。
ステップ1
- フォルダ/ lib / systemd / systemに移動します
cd /lib/systemd/system
入力します
ステップ2
- ファイル
crunchify.service
を作成します(それに応じてファイル名を変更します) - 以下のコンテンツを入れてください
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

ステップ-3
- ファイルを保存
chmod 755 crunchify.service
を使用して実行権限を提供します
ステップ-4
- コマンド
systemctl daemon-reload
を使用してcrunchify.serviceをロードします - コマンド
systemctl enable crunchify.service
します - コマンド
systemctl start crunchify
- コマンド
systemctl status crunchify
crunchifyを使用して、crunchify.serviceのステータスを確認します。
ステップ-5
- プロセスが実行されているかどうかを確認しますか?
- コマンド
ps -few | grep java
入力します。ps -few | grep java
を使用して、実行中のすべてのJavaプロセスを確認します - このようなものが表示されるはずです
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
これは、プロセス28631
がupstartスクリプトの使用を開始していることを意味します。 プロセスIDが異なる場合があります。
systemd crunchify.serviceが機能しているかどうかを確認するにはどうすればよいですか?
-
kill -9 28631
を使用してプロセスを強制終了しようとすると、新しいプロセスが自動的に作成されることがわかります。 - 私の場合、新しいプロセス
28887
が作成されました
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
ビデオ:完全なLive systemd upstartスクリプトのセットアップ例:
このビデオには次のものが含まれています– CentOS、Redhat、Ubuntu Linux OSでsystemdの起動/起動スクリプトを設定する方法は?
- 起動時にシェルスクリプトを自動的に実行する方法
- Linuxでsystemdサービスを作成する方法(CentOS 7)
- Linuxサービスを自動的に開始するように構成するにはどうすればよいですか?
- Centos 7systemd起動スクリプト
- Ubuntusystemd起動スクリプト
systemdについてもっと知りたいですか? 参考までに虎の巻をご覧ください。
すべてのタイプのLinuxOSでのeverything about systemd command
を学んでいただければ幸いです。
停止:古いバージョンのOSの場合のみ
older version
のRedhat、Ubuntu、CentOSバージョンを実行している場合は、この形式のスクリプトが必要になります。
-
/etc/init
に移動します - ファイル
crunchify.conf
作成します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- コマンド
service crunchify start
を使用してサービスを開始するだけです - 上記と同じ検証手順に従います
ご使用の環境でupstartスクリプトの実行に問題が発生した場合はお知らせください。 あなたの一日とハッピーコーディングをお楽しみください。