web-dev-qa-db-ja.com

「<service_name>は停止していますが、サブシステムはロックされています」とはどういう意味ですか?

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

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

39
Nick Brosnahan

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

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

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

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

62
Eddie