CentOS7 systemdにカスタムシステムサービスを追加する方法

CentOS7 systemdにカスタムシステムサービスを追加する方法

システムド:

CentOS 7のサービスsystemctlスクリプトは、/usr/lib/systemd/に保存されます。これは、システム(system)とユーザー(user)に分かれており、/usr/lib/systemd/system、/usr/lib/systemd/userです。

各サービスは .service で終わり、一般的に [Unit]、[Service]、[Install] の 3 つの部分に分かれています。nginx を例にとると、具体的な内容は以下のようになります。

サービスを作成します。

次の内容で /usr/lib/systemd/system の下に nginx.service ファイルを作成します (アプリケーションの要件に応じて、/usr/lib/systemd/usr の下に作成することもできます)。

[ユニット]
説明=nginx - 高性能ウェブサーバー
ドキュメント=http://nginx.org/en/docs/
後=network.target remote-fs.target nss-lookup.target
 
[サービス]
タイプ=フォーク
PIDファイル=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
実行開始=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
プライベートTmp=true
 
[インストール]
WantedBy=マルチユーザー.ターゲット

[ユニット]
説明: サービスの簡単な説明
ドキュメント: サービスドキュメント

After= : 依存関係。依存サービスが開始された後にのみカスタム サービス ユニットを開始します。

[サービス]
タイプ: スタートアップ タイプ シンプル、フォーク、ワンショット、通知、dbus

Type=simple (デフォルト): systemd はサービスが直ちに開始されると想定します。サービスプロセスはフォークしません。サービスが他のサービスを開始する場合、サービスがソケットでアクティブ化されていない限り、このタイプの起動を使用しないでください。 Type=forking: systemd は、サービス プロセスがフォークし、親プロセスが終了すると、サービスが正常に開始されたと見なします。通常のデーモンの場合、この起動方法がニーズを満たせないことが確実でない限り、このタイプの起動を使用します。この起動タイプを使用する場合は、systemd がサービスのメインプロセスを追跡できるように、PIDFile= も指定する必要があります。 Type=oneshot: このオプションは、1 つのタスクのみを実行してすぐに終了するサービスに適しています。また、サービス プロセスが終了した後も systemd がサービスをアクティブであると見なすように、RemainAfterExit=yes を設定する必要がある場合もあります。 Type=notify: Type=simple と同じですが、サービスが準備完了時に systemd に信号を送信することを指定します。この通知の実装は、libsystemd-daemon.so によって提供されます。 Type=dbus: この方法で起動すると、systemd は指定された BusName が DBus システム バスに表示されたときにサービスが準備完了であると見なします。

PIDFile: pidファイルパス
ExecStartPre: 開始前に行うべきこと。上記の例では、設定ファイルをテストすることです -t
ExecStart: 開始
ExecReload: リロード
ExecStop: 停止
PrivateTmp: Trueはサービスに独立した一時領域を割り当てることを意味します

[インストール]

WantedBy: サービスのインストール用のユーザー モード。文字通り、誰がこのサービスを使用したいのかを意味します。上記のテキストで使用されているターゲットは multi-user.target です。これは、このサービスを使用するディレクトリがマルチユーザーであることを意味します。 「上記はすべて私の個人的な理解と推測です。何か間違っている点があれば、アドバイスをください。」各 .target は、実際にはユニット ファイルへのリンクのコレクションです。以下を実行すると、

$ sudo systemctl nginx.service を有効にする

/usr/lib/systemd/system/nginx.service ファイルへの新しいリンクが /etc/systemd/system/multi-user.target.wants/ ディレクトリに作成されます。

運営サービス:

#サービスを開始します$ sudo systemctl start nginx.service

#ログを表示する $ sudo journalctl -f -u nginx.service
-- ログは 2015-06-25 木曜日 17:32:20 CST から始まります。 --
6月25日 10:28:24 Leco.lan systemd[1]: nginxを起動しています - 高性能ウェブサーバー...
6月25日 10:28:24 Leco.lan nginx[7976]: nginx: 設定ファイル /etc/nginx/nginx.conf の構文は正常です
6月25日 10:28:24 Leco.lan nginx[7976]: nginx: 設定ファイル /etc/nginx/nginx.conf のテストが成功しました
6月25日 10:28:24 Leco.lan systemd[1]: nginx(高性能ウェブサーバー)を起動しました。

#再起動$ sudo systemctl restart nginx.service

#リロード $ sudo systemctl reload nginx.service

#停止$ sudo systemctl stop nginx.service

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • systemdにカスタムシステムサービスを追加し、カスタムスタートアップを設定する方法
  • Docker で HTTP/HTTPS プロキシを設定する方法
  • Dockerのプロキシ設定の詳細な説明
  • Dockerネットワークプロキシ設定の詳細な説明
  • CentOS 7 での Docker プロキシの設定 (Linux での Systemd サービスの環境変数設定)

<<:  Centos6.5 の rpm パッケージから mysql5.7 をインストールするときに発生する初期化エラーの解決策

>>:  VUEはFlappy Birdゲームのサンプルコードを実装します

推薦する

VUEは底部吸引ボタンを実装

この記事では、VUEの具体的なコードを共有して、下部吸引ボタンを実装する例を紹介します。具体的な内容...

Webデザイン: タイトルが完全に表示できない場合

<br />今日、新しくなった ChinaUI.com の Web サイトを見たのですが...

CentOS サーバーに FFmpeg をインストールするための完全な手順

序文サーバーシステム環境は、CentOS 6.5 (最終) です。 FFmpeg をサーバーに正常に...

Tomcat8はcronologを使用してCatalina.Outログを分割します

背景tomcat によって生成された catalina.out ログ ファイルが分割されていない場合...

React Nativeのカスタムルーティング管理に関する深い理解

目次1. カスタムルーティング2. タブナビゲーション3. データの返却要約する1. カスタムルーテ...

DockerでVueプロジェクトをデプロイする方法を教えます

1.前面に書きます:軽量仮想化テクノロジーとして、Docker には継続的インテグレーション、バージ...

新しい ECMAscript オブジェクト機能の紹介

目次1. オブジェクトのプロパティ1.1 属性表記2. プロパティ名を計算する3.オブジェクトメソッ...

LinuxとGNUシステムの関係の詳細な説明

目次私たちが毎日実行している Linux システムとは何でしょうか? LinuxカーネルとGNUシス...

Vue + 要素を使用して背景データをオプションに動的に表示する

必要:ハードコードされたデータの代わりに、セレクター内のオプション値の動的な表示を実装します。私のロ...

Linux LVM 論理ボリューム構成プロセス (作成、増加、削減、削除、アンインストール) の詳細な説明

Linux LVM論理ボリューム構成プロセスの詳細な説明多くの Linux ユーザーは、オペレーティ...

CSS を使用して、画像に 3D の凸型と凹型のエフェクト (フレーム外に凸型、またはフレーム内に凹型) を実現します。

Ⅰ. 問題の説明: CSS を使用して画像の 3D 凸凹効果を実現します。 Ⅱ実施手順は以下のとお...

MySQL統計の概要

MySQL は、SQL 解析とクエリ最適化のプロセスを通じて SQL を実行します。パーサーは SQ...

Linux で MySQL をインストールして設定する

システム: Ubuntu 16.04LTS 1\公式サイトからmysql-5.7.18-linux-...

セマンティック HTML タグの紹介

ここ数年、ウェブサイト開発では DIV+CSS が非常に人気があり、当時は大きな騒動を引き起こしまし...

mysql maxとwhere間の実行問題の概要

mysql maxとwhereの間の実行の問題SQLを実行します: テーブル「grades」を作成し...