“<service_name>이 종료되었지만 서브 시스템이 잠겨 있음”은 무엇을 의미합니까?


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

즉, 서비스가 한 번에 실행되었지만 중단되었습니다.

서비스를 시작하면 서비스가 실행 중임을 나타내는 "잠금"파일이 작성됩니다. 이를 통해 여러 서비스 인스턴스를 피할 수 있습니다. 서비스를 중지하면이 잠금 파일이 제거됩니다.

실행중인 서비스가 충돌하면 잠금 파일이 존재하지만 프로세스는 더 이상 존재하지 않습니다. 따라서 메시지입니다.

두 지역 봐 /var/run/*.pid하고 /var/lock/subsys/*. 이들은 서로 동의해야합니다. 즉, (emtpy 파일) 잠금 파일 /var/lock/subsys/crond이 존재하면 파일의 첫 번째 행 /var/run/crond.pid에는이 서비스에 대해 실행중인 프로세스의 PID가 포함됩니다. 그러한 프로세스가 실행 중이 아니면 무언가 잘못되었습니다. (당신이 볼로) 프로세스가 실제로 실행되고 있지만없는 경우 있음을 PID가, 무언가 아마 혼동된다.


포트에 바인딩되어 있고 ps에 나열된 경우 여전히 실행되고 있지 않습니까?
Nick Brosnahan 2016 년

나는 대답을 확장했다. "ls / var / lock / subsys / memcached"(이 파일이 있다고 가정)와 "cat /var/run/memcached.pid"를 수행하고 첫 번째 줄을보십시오. 첫 번째 줄은 memcached에서 볼 수있는 PID입니다.
Eddie

미안, 무슨 일인지 알아 냈어 여전히 뛰고있었습니다. "sudo / sbin / service memcached start"를 사용하여 시작했지만 내 역사를 되돌아 보면 "/ sbin / service memcached service"를 사용하여 상태를 얻었습니다. PEBCAK. 모든 것이 잘됩니다. 당신의 도움을 주셔서 감사합니다.
Nick Brosnahan 2016 년

5
아, 그리고 루트가 아닌 상태를 실행하면 /var/run/memcached.pid에 대한 읽기 액세스 권한이 없을 수 있으므로 명령은 서브 시스템이 올바른 프로세스를 찾을 수 없어서 작동하지 않는 것으로 가정합니다.
Eddie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.