systemd는 init 0 또는 init 6 직후에 첫 번째 작업을 어떻게 실행합니까?

systemd는 init 0 또는 init 6 직후에 첫 번째 작업을 어떻게 실행합니까?

/etc/systemd/system/myshutdown.service것은

#!/bin/bash

[Unit]
Description=license administration shutdown
DefaultDependencies=no
After=final.target

[Service]
Type=oneshot
ExecStart=/root/scripts/license_administration_shutdown.sh

[Install]
WantedBy=final.target

나는 내가 시작한 해당 서비스 와 해당 시스템 서비스를 죽이기 위해 license_administration_shutdown.sh뭔가를 했습니다 .lmutil lmdown -force/root/scripts/license_administration.sh

init 6제 질문은 init 0종료 스크립트가 즉시 실행되기를 원하는지 아니면 완료 후 가장 먼저 해야 할 일 중 하나로 위의 시스템 서비스 구문이 올바른지입니다. 내 의도는 lmgrd에 책임이 있다고 생각되는 프로세스를 종료하는 것입니다.세션에서 작업 중지가 실행 중입니다.경고: 종료/재시작 시 1분 30초의 불편한 지연이 발생합니다.

init 6위 서비스에 더 높은 우선 순위를 부여하거나 완료되는 즉시 발생하도록 하기 위해 추가하거나 변경할 수 있는 구문이 더 있습니까 ?init 0

답변1

서비스 중지 서비스를 생성하는 대신 ExecStopPost라이선스 관리자 서비스에 작업을 추가하는 것이 가장 좋은 옵션일 수 있습니다.

라이센스 관리자가 기본 종속성을 사용하는 경우 자동으로 shutdown.target과 충돌합니다. 기본 종속성을 사용하지 않는 경우 Conflicts=shutdown.target라이선스 관리자의 서비스 설명에 추가할 수 있습니다.

시스템이 종료되거나 다시 시작될 때 shutdown.target을 호출하여 이를 수행합니다. 이는 (대부분의 경우) 실행 중인 모든 서비스와 자동으로 충돌합니다. 라이선스 관리자 서비스가 중지되고 그 일부로 지정된 명령이 실행됩니다 ExecStopPost=.

관련 정보