Apache 서버를 시작하고 다시 시작할 때 다음 명령의 차이점은 무엇입니까?
sudo service apache2 restart
sudo service apache2 stop
sudo service apache2 start
그리고
sudo systemctl restart apache2
sudo systemctl stop apache2
sudo systemctl start apache2
LAMP 스택을 사용하여 Linux 서버에 대해 조금 배우고 있는데 왜 일부 가이드에서는 한 구문을 사용하고 다른 가이드에서는 다른 구문을 사용하는지 알고 싶습니다.
답변1
LAMP 스택을 사용하여 Linux 서버에 대해 조금 배우고 있는데 왜 일부 가이드에서는 한 구문을 사용하고 다른 가이드에서는 다른 구문을 사용하는지 알고 싶습니다.
내 rlm 라이센스 관리자의 샘플 파일을 사용하면 /etc/init.d
파일의 관련 코드가 시작, 중지, 다시 시작 및 상태와 관련됩니다.
status() {
pid=`_getpid ${RLM_ROOT}/rlm`
if [ -z "$pid" ]; then
echo "rlm is stopped"
return 3
fi
echo "rlm (pid $pid) is running..."
return 0
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
보시다시피 restart
이것은 중지를 호출한 다음 시작하는 함수 호출일 뿐입니다. 그게 전부입니다 restart
. 중지를 호출한 다음 시작하면 됩니다.
init.d 또는 systemctl 파일이 실제로 내 예제와는 다르게, 더 복잡하게 다시 시작을 정의할 수 있습니까? 예, 실제로 이해하려면 코드를 직접 보아야 합니다. 그러나 대부분의 경우 시작|중지|재시작|상태와 관련하여 아파치 파일을 포함하여 위에 게시한 내용과 매우 유사합니다.
질문의 맥락에서 apache2 서비스를 중지하고 시작하려는 경우 이를 수행하는 데 필요한 최소 입력량은 service apache2 restart
두 개의 별도 명령을 수동으로 실행하여 먼저 중지한 다음 시작하는 것과 반대입니다. 그러나 어느 쪽이든 동일한 결과를 얻을 수 있습니다. 또한 이렇게 하면 restart
중지 성공 여부에 관계없이 서비스는 중지 후 즉시 시작을 시도합니다. 이는 수행 중인 작업이나 디버깅에 따라 좋을 수도 있고 나쁠 수도 있습니다. 때로는 첫 번째 작업을 수행 service whatever stop
한 다음 다른 작업을 수행하기 전에 오랫동안 중지한 다음 수동으로 후속 작업을 실행하는 것이 더 유용할 수 있습니다 service whatever start
.
초기화 파일예오래된 리눅스 방식around service
, 이제 다음으로 대체됨체계리눅스와 systemctl
구문 구조. 하지만 여전히 지원 service whatever <start|stop|restart|status
되며 . 이전 init.d 유형 Linux 시스템(예: redhat5)에서 이를 사용하려고 하면 명백한 이유로 "명령을 찾을 수 없음" 상황이 발생합니다. initd 및 systemd를 설명하는 이 웹 기사를 읽을 수 있습니다.systemctl <start|stop|restart|status whatever
service
systemctl
systemctl
문서의 구문을 사용 하고 명령줄에 입력하는 것은 service whatever <start|stop|status|restart>
여전히 완벽하게 유효하고 정확합니다 . 문서와 가이드의 경우 최소한의 문자로 요점을 전달하고 systemctl(서비스)에 거의 직접적으로 별칭이 지정되므로 해당 레거시를 계속 사용하는 것이 사람이 더 읽기 쉬운 것 같습니다.초기화모든 문서의 서비스 구문.