0x00の概要
作業環境がCentos6バージョンを使用されている前に、スクリプトが/etc/init.d/xxxを使用しています。Cento7へのアップグレード後、起動前のスクリプトも使用できますが、systemctlカスタムスクリプトを使用されていません。
この記事では、特定の使用のためのケースをまとめました。完全にsystemdによって置き換え最初のプログラムからCentos7ブートモードを起動INIT、及びにsystemdユニットは、ブートサービス、電力レベル及びその他の機能を制御する方法に依存しています。
0x01を設定
Centos7サービスsystemctlスクリプトは、一般的に格納します。/ usr / lib / systemdに、あるユーザディレクトリとシステムのポイント
-
- / usr / libに/にsystemd /システム #システムサービス、ブートプログラムを実行することができます(カイからのブートに相当する)でログインする必要がありません。
- / usr / libに/にsystemd /ユーザー ユーザーの#、プログラムを実行するためにはログインする必要があります
ディレクトリとファイルの2種類があります。
-
- * .Service#ファイルサービスユニット
- * .TARGETの#ブートレベルユニット
CentOS7 .serviceを終了する各サービスは、通常、3つの部分に分かれ:[単位]、[サービス]と[インストール]
Vimのは/ usr / libに/にsystemd /システム/ xxx.service [単位] #主にサービスの説明 説明=テスト #サービスの簡単な説明 network.target =の後に #説明サービスタイプは、このサービスは、ネットワークサービスが開始後に開始される必要があることを示している の前にxxx.service = #は、特定のサービスを開始するために必要性を表明開始前、後、フィールドが依存関係を伴わない唯一のブートシーケンスを必要とする前に。 [サービス] #のコア領域 タイプ=フォーク #はバックグラウンドモードを表します。 =ユーザーユーザー #は、ユーザー実行するようにサービスを設定する グループは=ユーザー #のユーザグループが実行するようにサービスを設定 KillMode =コントロール・グループ #はsystemdにサービスを停止する方法を定義 PidFileオプション=は/ usr / local /試験/ test.pid #のPIDに格納絶対パスを =再起動NO #、定義されたサービスプロセスと出口にsystemd再始動モード、デフォルトでは再起動していない ExecStart =は/ usr / local /テスト/ binに/ startup.sh #のサービスは、コマンドを起動し、コマンドは絶対パス必要が trueにPrivateTmp =を #サービスの配布に指示独立した一時的なスペース [インストール] WantedBy = multi-user.target #マルチユーザ
0x02のフィールド説明
入力タイプは次のとおりです。 単純な(デフォルト): #プロセスExecStartフィールドベースのプロセスを開始するために フォーク: #1 、親プロセスが終了、起動する()の方法をフォークするExecStartフィールドを、子プロセスは(バックグラウンドで実行されている)主なプロセスになります。通常、フォークに設定する ワンショット: #シンプルに類似するが、それが起動する他のサービスの前に実行を完了するために一度だけ、systemdには待機します DBUS: #シンプルに似てますが、開始するにはD-バス信号を待ちます 通知: #シンプルに類似します、スタート信号が通知され、その後、他のサービスにsystemd再起動されます後に IDLEを: #はシンプルに似ていますが、他のタスクが実行されるまで待つように、サービスを開始します。 EnvironmentFile: 設定ファイルを指定し、接続詞番号の組み合わせを使用して、異常なコンフィギュレーション・ファイルが存在しない避けること。 環境: 異なる変数の複数のシェルが続きます。 たとえば、次のように 環境 = DATA_DIR = /データ/ エルク 環境。LOG_DIR = =は/ var / log / elasticsearch 環境 = PID_DIR =の/ var / RUN / elasticsearch EnvironmentFile = -の/ etc /のsysconfig / elasticsearch コネ記号( - ):すべての設定を開始する前に、追加の変数フィールドは、接続詞を追加することができます何の 表現誤差の抑制は、すなわちエラーが発生した場合、他のコマンドの実行に影響を与えるません。 EnviromentFileのような` = -の/ etc /のsysconfig / xxx`ファイルが存在しない場合であっても、それは例外をスローしないことを言っ KillModeタイプ: コントロール: -基(デフォルト)#殺されるすべてのサブプロセスにおける電流制御グループを プロセスを:#は本体のみのプロセスを殺す ミックス: #のマスター・プロセスはSIGTERMシグナルを受信すると、子は信号SIGKILLを受信していない どれも: #何のプロセスが殺されませんが、サービスの停止コマンドの実行 を再起動タイプ: NO(デフォルト): #何も操作を出ない後 :オン成功 #正常終了(終了ステータス0)、再起動する唯一の ON故障を: #非正常終了、再起動、終了、及びタイムアウト信号を含む オン異常:#のみ終了またはタイムアウト信号は、再起動します :ON-ABORTを #、唯一の終了信号の受信時には、キャプチャされません再起動します オンウォッチドッグを:#1 タイムアウト終了、再起動しません 常に: #関係なく、終了の理由は、再起動しますどのような #デーモンの、故障-ONが推奨する RestartSecフィールド: systemdには、サービスを再起動する前に、秒数を待つように表現:RestartSec: 30 様々なExecの * フィールド: #1 Execは*コマンドに続いて、唯一の「コマンドパラメータを受け入れるように.. &その他の特殊文字は、bash構文の多くがサポートされていません|「フォーマットは、> <受け入れることはできません。あなたはTyep =ワンショットbashの構文をサポートしたい場合は、設定する必要があり ExecStartの: #のコマンドをするときに、サービスが開始実行します ExecReload: #サービス再起動するときに実行するコマンド ExecStopを: #のサービスのうち、実行するコマンド ExecStartPre: #のコマンドサービス開始前に ExecStartPost:#の後にサービスを開始するには、コマンドを ExecStopPost:#1 ストップサービス後のコマンド WantedByフィールド: マルチ - user.target: #は、マルチユーザコマンドラインモードを表し、この設定が重要である graphical.target: #は、身体のようなグラフィカル・ユーザを表し、それはmulti-user.targetに依存します
0x03のsystemctlコマンド
デーモン・リロードsystemctl #オーバーロードされたシステムサービス * .service有効systemctlを#サービスブートを設定を 開始しますsystemctl * .serviceの #は、サービス開始 systemctlの.serviceを* STOPの #は、サービスが停止します * .serviceのリロードsystemctl #は、サービスを再起動します
参照
0x00の概要
作業環境がCentos6バージョンを使用されている前に、スクリプトが/etc/init.d/xxxを使用しています。Cento7へのアップグレード後、起動前のスクリプトも使用できますが、systemctlカスタムスクリプトを使用されていません。
この記事では、特定の使用のためのケースをまとめました。完全にsystemdによって置き換え最初のプログラムからCentos7ブートモードを起動INIT、及びにsystemdユニットは、ブートサービス、電力レベル及びその他の機能を制御する方法に依存しています。
0x01を設定
Centos7サービスsystemctlスクリプトは、一般的に格納します。/ usr / lib / systemdに、あるユーザディレクトリとシステムのポイント
-
- / usr / libに/にsystemd /システム #システムサービス、ブートプログラムを実行することができます(カイからのブートに相当する)でログインする必要がありません。
- / usr / libに/にsystemd /ユーザー ユーザーの#、プログラムを実行するためにはログインする必要があります
ディレクトリとファイルの2種類があります。
-
- * .Service#ファイルサービスユニット
- * .TARGETの#ブートレベルユニット
CentOS7 .serviceを終了する各サービスは、通常、3つの部分に分かれ:[単位]、[サービス]と[インストール]
Vimのは/ usr / libに/にsystemd /システム/ xxx.service [単位] #主にサービスの説明 説明=テスト #サービスの簡単な説明 network.target =の後に #説明サービスタイプは、このサービスは、ネットワークサービスが開始後に開始される必要があることを示している の前にxxx.service = #は、特定のサービスを開始するために必要性を表明開始前、後、フィールドが依存関係を伴わない唯一のブートシーケンスを必要とする前に。 [サービス] #のコア領域 タイプ=フォーク #はバックグラウンドモードを表します。 =ユーザーユーザー #は、ユーザー実行するようにサービスを設定する グループは=ユーザー #のユーザグループが実行するようにサービスを設定 KillMode =コントロール・グループ #はsystemdにサービスを停止する方法を定義 PidFileオプション=は/ usr / local /試験/ test.pid #のPIDに格納絶対パスを =再起動NO #、定義されたサービスプロセスと出口にsystemd再始動モード、デフォルトでは再起動していない ExecStart =は/ usr / local /テスト/ binに/ startup.sh #のサービスは、コマンドを起動し、コマンドは絶対パス必要が trueにPrivateTmp =を #サービスの配布に指示独立した一時的なスペース [インストール] WantedBy = multi-user.target #マルチユーザ
0x02のフィールド説明
入力タイプは次のとおりです。 単純な(デフォルト): #プロセスExecStartフィールドベースのプロセスを開始するために フォーク: #1 、親プロセスが終了、起動する()の方法をフォークするExecStartフィールドを、子プロセスは(バックグラウンドで実行されている)主なプロセスになります。通常、フォークに設定する ワンショット: #シンプルに類似するが、それが起動する他のサービスの前に実行を完了するために一度だけ、systemdには待機します DBUS: #シンプルに似てますが、開始するにはD-バス信号を待ちます 通知: #シンプルに類似します、スタート信号が通知され、その後、他のサービスにsystemd再起動されます後に IDLEを: #はシンプルに似ていますが、他のタスクが実行されるまで待つように、サービスを開始します。 EnvironmentFile: 設定ファイルを指定し、接続詞番号の組み合わせを使用して、異常なコンフィギュレーション・ファイルが存在しない避けること。 環境: 異なる変数の複数のシェルが続きます。 たとえば、次のように 環境 = DATA_DIR = /データ/ エルク 環境。LOG_DIR = =は/ var / log / elasticsearch 環境 = PID_DIR =の/ var / RUN / elasticsearch EnvironmentFile = -の/ etc /のsysconfig / elasticsearch コネ記号( - ):すべての設定を開始する前に、追加の変数フィールドは、接続詞を追加することができます何の 表現誤差の抑制は、すなわちエラーが発生した場合、他のコマンドの実行に影響を与えるません。 EnviromentFileのような` = -の/ etc /のsysconfig / xxx`ファイルが存在しない場合であっても、それは例外をスローしないことを言っ KillModeタイプ: コントロール: -基(デフォルト)#殺されるすべてのサブプロセスにおける電流制御グループを プロセスを:#は本体のみのプロセスを殺す ミックス: #のマスター・プロセスはSIGTERMシグナルを受信すると、子は信号SIGKILLを受信していない どれも: #何のプロセスが殺されませんが、サービスの停止コマンドの実行 を再起動タイプ: NO(デフォルト): #何も操作を出ない後 :オン成功 #正常終了(終了ステータス0)、再起動する唯一の ON故障を: #非正常終了、再起動、終了、及びタイムアウト信号を含む オン異常:#のみ終了またはタイムアウト信号は、再起動します :ON-ABORTを #、唯一の終了信号の受信時には、キャプチャされません再起動します オンウォッチドッグを:#1 タイムアウト終了、再起動しません 常に: #関係なく、終了の理由は、再起動しますどのような #デーモンの、故障-ONが推奨する RestartSecフィールド: systemdには、サービスを再起動する前に、秒数を待つように表現:RestartSec: 30 様々なExecの * フィールド: #1 Execは*コマンドに続いて、唯一の「コマンドパラメータを受け入れるように.. &その他の特殊文字は、bash構文の多くがサポートされていません|「フォーマットは、> <受け入れることはできません。あなたはTyep =ワンショットbashの構文をサポートしたい場合は、設定する必要があり ExecStartの: #のコマンドをするときに、サービスが開始実行します ExecReload: #サービス再起動するときに実行するコマンド ExecStopを: #のサービスのうち、実行するコマンド ExecStartPre: #のコマンドサービス開始前に ExecStartPost:#の後にサービスを開始するには、コマンドを ExecStopPost:#1 ストップサービス後のコマンド WantedByフィールド: マルチ - user.target: #は、マルチユーザコマンドラインモードを表し、この設定が重要である graphical.target: #は、身体のようなグラフィカル・ユーザを表し、それはmulti-user.targetに依存します
0x03のsystemctlコマンド
デーモン・リロードsystemctl #オーバーロードされたシステムサービス * .service有効systemctlを#サービスブートを設定を 開始しますsystemctl * .serviceの #は、サービス開始 systemctlの.serviceを* STOPの #は、サービスが停止します * .serviceのリロードsystemctl #は、サービスを再起動します
参照