2016-11-21 17 views
0

RHEL6用に作成されたサービスが既にあります。実行できるカスタムサービスコマンドがいくつかありました。スクリプトの抜粋については以下を参照してください。私はサービスを実行して見なければならなかった場合RHEL7のサービス

case "$1" in 
    'start') 
     start 
     ;; 
    'stop') 
     stopit 
     ;; 
    'restart') 
     stopit 
     start 
     ;; 
    'status') 
     status 
     ;; 
    'AppHealthCheck') 
     AppHealthCheck 
     ;; 
    *) 
     echo "Usage: $0 { start | stop | restart | status | AppHealthCheck }" 
     exit 1 
     ;; 
esac 

すべてと呼ばれる方法は、それが健全である場合、私はサービスの$ SERVICENAME AppHealthCheck ..を実行するために使用し、それが動作するために使用されるが、RHEL6でそう以前に...そこdefinationを持っています今RHEL7で私は私がAppHealthと言うようにしたいと思ったらサービスユニットファイルで定義することができません...私が行った研究では、サービスの開始/停止/再起動のために何が呼び出されるかを定義できますが、

[Unit] 
Description=SPIRIT Agent Application 

[Service] 
Type=forking 
ExecStart=scripts/Agent start 
ExecStop=scripts/Agent stop 
ExecReload=scripts/Agent restart 

[Install] 

使用すると、1つは、レゾルビンで私を助けてください - は:以下の私のサービスユニットファイルを参照してください、我々はscript..Pleaseで任意のカスタムメソッドを呼び出すことができるかどうか見つけることができませんgこのissue.Please詳細情報が必要な場合は私に知らせてください。

+0

特定のエラーが発生しますか表示されたコードを呼び出すと、メッセージが表示されますか?あなたがそのケースステートメントでそれを呼び出す時に定義される 'AppHealthCheck'ですか? –

+0

'AppHealthCheck'は何をするのですか? –

+0

はい、それが定義されています... –

答えて

0

systemdの方法では、最新のログメッセージを表示するように出力をジャーナルに送信し、サービスが実行中かどうかを知らせます。より詳細なステータスが必要な場合は、AppHealthCheckを実行する別のコマンドラインコマンドを作成します。それはsystemctlによって実行されないでしょう、それは別のものです。

これは、たとえばPacemakerの動作方法です。 systemctl status pacemakerは、サービスが実行中かどうかを示します。

# systemctl status pacemaker 
● pacemaker.service - Pacemaker High Availability Cluster Manager 
    Loaded: loaded (/usr/lib/systemd/system/pacemaker.service; enabled; vendor preset: disabled) 
    Active: active (running) since Thu 2016-11-10 15:28:11 GMT; 1 weeks 3 days ago 

Nov 11 15:54:59 node1 crmd[4422]: notice: Operation svc1_stop_0: ok (node=node1, call=93, rc=0, cib-update=134, confirmed=true) 
Nov 11 15:54:59 node1 crmd[4422]: notice: Operation svc2_stop_0: ok (node=node1, call=95, rc=0, cib-update=135, confirmed=true) 
Nov 11 15:54:59 node1 crmd[4422]: notice: Operation svc3_stop_0: ok (node=node1, call=97, rc=0, cib-update=136, confirmed=true) 

pcs statusどのように機能しているかについての詳細情報が表示されます。

# pcs status 
Cluster name: node 
Stack: corosync 
Current DC: node2 (version 1.2.3) - partition with quorum 
2 nodes and 3 resources configured 

Online: [ node1 node2 ] 

Full list of resources: 

<snip> 

PCSD Status: 
    node1: Online 
    node2: Online 

Daemon Status: 
    corosync: active/enabled 
    pacemaker: active/enabled 
    pcsd: active/enabled 
+0

私はカスタムコマンドを実行したとしても以前のようにサービス$ servicename Appcheck Appcheckケースが呼び出されているとそれに応じて動作していますが、このAppcheckが内部的にサービスを開始した場合私はサービスを停止することはできません。 –

0

RHEL7では、以前のようにカスタムサービスコマンドを定義することはできません。また、RHEL6サーバーで行うこともできます。サービスを実行していることをRHEL7サーバが認識できるように、カスタムサービスコマンドを呼び出しても、内部的に 'service $ servicename start'または 'systemctl start $ servicename'を呼び出す必要があります。

関連する問題