Arch Linux에서는 일부 시스템 업데이트(안타깝게도 어떤 업데이트인지는 알 수 없음)로 인해 vmware.service
종료/다시 시작 중에 중단됩니다.
systemctl stop vmware.service
서비스가 실행 중인 동안 서비스를 수동으로 중지(예: Gnome 터미널에서) 하면 gdm.service
서비스가 빠르게 중지된 다음 예상한 대로 빨리 종료된다는 사실을 발견했습니다 . 구글링을 해보니 Fedora 21에도 비슷한 문제가 있다는 것을 발견했고, 한 사용자는 문제를 해결하기 위해 lightdm으로 전환했습니다. lightdm으로 전환하고 싶지 않아서 systemd에게 vmware.service
stop 전에 중지하라고 지시할 수 있는 방법이 있는지 궁금합니다 gdm.service
. 아니면 누군가 해결책이 있다면...
답변1
물론 방법이 있습니다. 단일 트랜잭션 내에서 활성화/비활성화될 때 특정 상호 순서를 따르는 systemd
단위 쌍 간의 소위 "순서 종속성" 지정을 지원합니다 .systemd
~에서시스템 유닛(5):
= 전, = 후
공백으로 구분된 단위 이름 목록입니다. 하이브 간의 종속성을 주문합니다. foo.service 장치에 Before=bar.service 설정이 포함되어 있고 두 장치가 모두 시작 중인 경우 foo.service가 시작될 때까지 bar.service 시작이 지연됩니다. <...>순차 종속성을 갖는 두 장치가 종료되면 시작 순서가 반대가 됩니다.즉, 한 장치가 다른 장치에 After=를 구성한 경우 두 장치가 모두 종료되면 전자가 후자보다 먼저 중지됩니다. <...>
vmware.service
따라서 중지하기 전에 비활성화(중지) 하려고 합니다 . 위의 내용을 바탕으로 gdm.service
단위에 정렬 종속성을 추가하면 이를 달성할 수 있습니다.After=gdm.service
vmware.service
전체 셀을 에 복사하지 않으려면 /etc/systemd/system
다음 메커니즘을 사용할 수 있습니다.임시 삽입("예 2" 참조) /etc/systemd/system/vmware.service.d/<some name>.conf
필수 지시어와 섹션 헤더만 포함된 파일을 생성해야 합니다 .
[Unit]
After=gdm.service
이 작업이 완료되면 단위를 systemctl daemon-reload
다시 읽으라는 명령을 실행하십시오. systemd
종료 시 새 종속성 목록이 적용됩니다.