저는 exec 시작 스크립트를 사용하는 서비스를 만들었습니다. 왜냐하면 이 서비스는 신생 기업에서 작동하기 때문입니다. systemd에서는 스크립트가 완료될 때까지 기다리기 때문에 시스템을 부팅할 수 없게 만듭니다. 하지만 웹 서버이므로 중지할 때까지 완료되지 않습니다. 어떻게 해결할 수 있나요?
답변1
업데이트된 (구체적인) 답변
disable
커널 명령줄에 인수를 추가하면 서비스가 직접(예: ing) 시작되거나 다른 시스템 장치에 의해 시작되는 것을 쉽게 방지할 수 있습니다.
systemd.mask=name.service
원래(일반) 답변
MariusMatutiae가 언급했듯이 유닛 파일을 수정(또는 비활성화)해야 합니다. 다른 Linux를 부팅하여 이 작업을 수행할 수 있습니다(이 목적을 위해 작은 추가 Linux를 설치하는 것이 좋습니다. CD/DVD 또는 USB 스틱에서 부팅할 수도 있습니다). 또는 부팅 옵션을 사용하여 이 Linux를 부팅하면 이 질문이 발생하지 않도록 하세요.
~에서http://freedesktop.org/wiki/Software/systemd/Debugging/
구조 또는 긴급 목표 발사
복구 대상으로 직접 부팅하려면 커널 명령줄에 추가 systemd.unit=rescue.target
하거나 추가하면 됩니다 . 1
이 대상은 기본 시스템 시작 후 "정상적인" 서비스 시작 중에 문제가 발생하는 경우 유용합니다. 이 경우 여기에서 잘못된 서비스를 비활성화할 수 있습니다. 구조 목표도 활성화되지 않으면 가장 작은 비상 목표가 활성화될 수 있습니다.
비상 셸로 직접 부팅하려면 커널 명령줄에 systemd.unit=emergency.target
또는 를 추가하세요. emergency
비상 셸에서는 파일을 편집하기 전에 읽기-쓰기 루트 파일 시스템을 직접 다시 마운트해야 합니다.
mount -o remount,rw /
비상 대상조차도 작동하지 않으면 boot를 직접 쉘에 사용할 수 있습니다 init=/bin/sh
.