「<service_name> dead but subsys locked」とはどういう意味ですか?


38

Centosボックスでmemcachedを実行しようとしていますが、しばらく実行されますが、この状態になります:

memcachedは死んでいますが、サブシステムはロックされています

netstatはこれを示します:

tcp        0      0 :::11211                    :::*                        LISTEN      
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               

psはこれを示しています:

nobody   21983  0.0  1.8  60272 19912 ?        Ssl  16:46   0:00 memcached -d -p 11211 -u nobody -c 1024 -m 64

誰もがそれが何を意味するのか知っていますか?

回答:


61

これは、サービスが一度に実行されていたが、クラッシュしたことを意味します。

サービスを開始すると、サービスが実行されていることを示す「ロック」ファイルが作成されます。これにより、サービスの複数のインスタンスを回避できます。サービスを停止すると、このロックファイルは削除されます。

実行中のサービスがクラッシュすると、ロックファイルは存在しますが、プロセスは存在しなくなります。したがって、メッセージ。

2つの領域/var/run/*.pidとを見てください/var/lock/subsys/*。これらは互いに一致すると予想されます。つまり、(emtpyファイル)ロックファイル/var/lock/subsys/crondが存在する場合、ファイルの最初の行には、/var/run/crond.pidこのサービスで実行されているプロセスのPIDが含まれていると予想されます。そのようなプロセスが実行されていない場合、何かが間違っています。プロセスが実際に実行されている場合(ご覧のように)、それがその PID ではない場合おそらく何かが混乱しています。


ポートにバインドされ、psにリストされている場合、まだ実行されていませんか?
ニックブロスナハン

答えを拡張しました。「ls / var / lock / subsys / memcached」(このファイルが存在すると仮定)を実行し、次に「cat /var/run/memcached.pid」を実行して、最初の行を確認します。最初の行は、memcachedで表示されるはずのPIDです。
エディ

申し訳ありませんが、私は何が起こっているかを理解しました。まだ実行中でした。「sudo / sbin / service memcached start」を使用して起動しましたが、過去を振り返ると、「/ sbin / service memcached service」を使用してステータスを取得しました。PEBCAK。すべては順調です。ご協力いただきありがとうございます。
ニックブロスナハン

5
ああ、root以外のステータスを実行している場合、/ var / run / memcached.pidへの読み取りアクセス権を持っていなかった可能性があります。したがって、正しいプロセスを見つけることができなかったため、コマンドはサブシステムが死んだと想定しました。
エディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.