Red Hat 6.7 でサービスがクラッシュした後、inittab はサービスを再起動しません。

Red Hat 6.7 でサービスがクラッシュした後、inittab はサービスを再起動しません。

注:私はRed Hat 6.7を実行しています。

コンピュータの起動時にプロセスがサービスとして起動するように、Linux initシステムを使用してサービスを設定しました。これは、コマンドラインからのワンタイム設定を介して行われます。

ln -snf /home/me/bin/my_service /etc/init.d/my_service
chkconfig --add my_service
chkconfig --level 235 my_service on

オペレーティングシステムが再起動すると、サービスは期待どおりに起動します。

また、競合が発生した場合は、サービス(my_service)を再起動する必要があります。私が読んだことによれば、私がしなければならないことは、次のように/ etc / inittabにエントリを追加するだけです。

mysvc:235:respawn:/home/me/bin/my_service_starter

my_service_starterは次のとおりです。

#!/bin/bash
/home/me/bin/my_service start

my_serviceスクリプトは次のとおりです。

#!/bin/bash
"/usr/java/bin/java" /home/me/bin/my_service.jar start

私が理解しているのは、initシステムがmy_serviceが実行されていないことを検出すると、「my_service_starter」を実行して再起動しようとすることです。

しかし、これはうまくいかないようです。つまり、オペレーティングシステムを再起動してもサービスは開始されません。

サービスがクラッシュしたときにLinux初期化システムにサービスを再起動するように指示する方法を理解する必要があります。

答え1

Red Hat 6はどのような用途に使用されますか?突然現れる初期化システムとして。

提供されたファイルはinittab次の行で始まります。

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

init(注/etc/initいいえ /etc/init.d)。

たとえば(ただし、デバッグが必要な場合があります)/etc/init/myservice

start on runlevel [2345]
stop on runlevel [S016]

respawn
exec /home/me/bin/my_service_starter

関連情報