이 두 Linux 서버 명령 사이에 차이점이 있습니까? [복사]

이 두 Linux 서버 명령 사이에 차이점이 있습니까? [복사]

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 whateverservicesystemctlsystemctl

문서의 구문을 사용 하고 명령줄에 입력하는 것은 service whatever <start|stop|status|restart>여전히 ​​완벽하게 유효하고 정확합니다 . 문서와 가이드의 경우 최소한의 문자로 요점을 전달하고 systemctl(서비스)에 거의 직접적으로 별칭이 지정되므로 해당 레거시를 계속 사용하는 것이 사람이 더 읽기 쉬운 것 같습니다.초기화모든 문서의 서비스 구문.

관련 정보