
업데이트:댓글에 응답:
아파치 프로세스를 확인하십시오.
$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
4514 pts/0 S+ 0:00 grep --color=auto apache
$ ps a | grep apache2
4516 pts/0 S+ 0:00 grep --color=auto apache2
아파치 오류 로그 확인
$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
원래의:아파치를 중지했는데 왜 여전히 동일한 수의 프로세스가 실행되고 있습니까?
$ ps -A | grep apache
1663 ? 00:00:00 apache2
1667 ? 00:00:00 apache2
1668 ? 00:00:00 apache2
1669 ? 00:00:00 apache2
1670 ? 00:00:00 apache2
1671 ? 00:00:00 apache2
$ /etc/init.d/apache2 stop
* Stopping web server apache2 [ OK ]
$ ps -A | grep apache
1663 ? 00:00:00 apache2
1667 ? 00:00:00 apache2
1668 ? 00:00:00 apache2
1669 ? 00:00:00 apache2
1670 ? 00:00:00 apache2
1671 ? 00:00:00 apache2
감사해요!
답변1
이는 Apache가 제대로 중지를 거부하거나좀비 프로세스. 전자의 경우 다음을 사용하여 실행 중인 모든 프로세스를 종료할 수 있습니다 sudo killall -9 apache2
. 그러나 후자의 경우에는 그것들이 사라질 때까지 기다려야 합니다. Apache가 제대로 중지하기를 원하지 않는 경우 실제로 하고 싶은 일은 무슨 일이 일어나고 있는지 조사하는 것입니다. 하지만 무슨 일이 일어나고 있는지 정확히 알아내는 것은 어려울 수 있습니다.
프로세스 ID의 대화형은 strace
어떤 사이트가 작동하고 문제를 일으키는지에 대한 단서를 제공할 수 있습니다. 위에서 ps -A
첫 번째 프로세스를 확인할 수 있습니다.
strace -p 1663
이는 진행 중인 작업에 대한 실시간 출력을 제공하는 실행 중인 프로세스 스택 추적에 연결됩니다. 언제든지 Ctrl+C
추가 리소스는 Apache의 기본 오류 로그입니다. 이 /var/log/apache2/error.log
로그는 상당한 양의 로그를 가져와서 자세한 내용을 훑어보고 싶을 것입니다. 문제가 실행 중인 지속적인 문제인 경우
tail -f /var/log/apache2/error.log
이는 strace
실시간으로 실행되는 것과 유사합니다. 마지막 N 줄의 경우 50, 100, 282 등과 같은 양수 로 -f
바꿉니다 .-#
#
답변2
서비스를 중지할 수 있는 적절한 권한이 있는지 확인하세요.
실행하는 경우:
service apache2 stop
다음과 같이 하면 오류가 발생하지 않습니다.
* 웹 서버 apache2 중지 중
노력하다:
sudo service apache2 stop
답변3
나도 같은 문제가 있었고 다음을 시도했습니다.
sudo apache2ctl stop
서비스를 중지하고
sudo apache2ctl start
다시 시작하려면.
그것은 나에게 효과적이며 가능한 제안을 환영합니다.
답변4
프로세스를 요청할 수 있습니다(신호그들에게) 그만 두십시오. 명령 kill
은 이를 수행하는 방법입니다. 프로세스의 프로세스 ID(PID)를 알고 있다면 터미널에서 아래 명령을 실행하여 확인할 수 있습니다.
kill PID_OF_YOUR_PROCESS
위의 예에서는 PID에 기본 TERM 신호(코드 15)를 보냅니다. 신호코드는 다음에서 찾아보실 수 있습니다.kill 매뉴얼 페이지( man kill
).
프로그램이 전송된 TERM 신호를 무시하는 경우에도 KILL 신호(코드 9)를 전송하여 좀 더 압력을 가하는 것이 가능합니다. 프로세스가 저장되지 않은 데이터를 저장하지 않을 수 있으므로 이 신호는 최후의 수단으로 사용됩니다.
-SIGNAL_CODE
프로세스 ID 앞에 첫 번째 매개변수로 a를 지정하면 프로세스에 특정 신호가 전송됩니다. 명령 의 또 다른 유용한 기능은 kill
다음 예와 같이 더 많은 PID를 지정할 수 있다는 것입니다.
kill -9 PID1 PID2 PID3 PID4
해당 라인을 사용하여 Apache 프로세스를 종료해 보십시오 kill -9
. 무언가 방해가 되지 않는 한 중단해야 합니다.