실행 수준에서 서비스를 비활성화하려면 systemd 및 sysvinit를 비활성화해야 합니까?

실행 수준에서 서비스를 비활성화하려면 systemd 및 sysvinit를 비활성화해야 합니까?

내 애플리케이션은 systemd가 실행되는 시스템과 systemd를 사용할 수 없는 이전 플랫폼에서 실행되어야 합니다. 따라서 chkconfig 및 systemctl 활성화를 사용하여 내 서비스를 런레벨에 등록합니다.

실행 수준에서 서비스를 비활성화하려면 어떻게 해야 합니까? systemctl과 chkconfig를 비활성화해야 합니까?

답변1

깨끗한 해결책은어떤 초기화 시스템이 사용되고 있는지 확인하세요그런 다음 사용 중인 init 시스템에 적용되는 명령만 실행하십시오.

답변2

sysvinit시스템 의 경우 chkconfig서비스를 실행하는 스크립트에 대한 링크를 생성하고 /etc/rc.d/init.d서비스에 대해 지정한 실행 수준에 따라 배치합니다./etc/rc*.d

systemd시스템 의 경우 링크를 생성하고 systemctl enable시스템과 다른 폴더 chkconfig에 배치합니다 sysvinit.

예를 들어 다중 사용자 수준의 경우 다음을 입력합니다./etc/systemd/system/multi-user.target.wants/

귀하의 경우 실행중인 스크립트가 있으면 /etc/init.d 호출하면 systemd disable링크를 제거 /etc/systemd/system/X/ 하고 호출하면 chkconfig링크 sysvinit를 제거하십시오./etc/rc*.d

관련 정보