팩맨이 실행 중일 때 종료를 비활성화할 수 있나요?

팩맨이 실행 중일 때 종료를 비활성화할 수 있나요?

아치 리눅스를 사용한 마지막 업데이트 중에 pacman -Syu업데이트가 백그라운드에서 실행되고 패키지를 설치하고 있다는 사실을 잊어버렸기 때문에 랩탑을 종료했습니다.

pacman -Syu그 후에는 더 이상 아치 리눅스를 부팅할 수 없었고 다른 노트북을 사용하여 부팅 가능한 USB를 만들고 chroot를 사용하여 다시 실행하여 아치 리눅스 설치를 복구하는 시간 소모적인 프로세스를 거쳐야 했습니다 .

시스템 업데이트를 실행하는 동안 실수로 노트북을 종료한 후 비슷한 문제가 발생한 적이 있어서 종료 프로세스가 시작되려고 할 때 팩맨이 실행 중이라는 경고를 표시하는 방법이 있는지 궁금합니다.

나는 일반적인 KDE 플라즈마 "종료" 메커니즘을 사용하여 컴퓨터를 종료했습니다.

편집하다

아이디어로서 설명된 대로 팩맨이 실행 중인지 먼저 확인하는 스크립트를 작성할 수 있을 것이라고 생각했습니다.여기, pacman이 실행 중이 아니면 표시된 kde shutdown 명령을 호출하십시오.여기.

지금은 Linux 상자에 액세스할 수 없기 때문에 시도해 볼 수 없지만 오늘 밤에 시도해 보겠습니다.

답변1

나는 이 문제에 대한 시스템 차원의 해결책을 찾았고, 어떤 종류의 전원 관리도 방지했습니다. 저는 systemd의 전원이 꺼지는 것을 방지하는 두 개의 팩맨 후크를 만들었습니다(참조:https://askubuntu.com/a/858617).

첫 번째는 대상을 마스크하는 것입니다.

/etc/pacman.d/hooks/00-prevent-interruption-pre.hook

[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *

[Action]
Description = Masking systemd targets to prevent interruption...
When = PreTransaction
Exec = /usr/bin/systemctl --runtime mask halt.target poweroff.target reboot.target kexec.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target sleep.target
Depends = systemd

두 번째는 다른 모든 후크가 실행된 후에 다시 발견하는 것입니다.

/etc/pacman.d/hooks/99-prevent-interruption-post.hook

[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *

[Action]
Description = Unmasking systemd targets to reenable power management...
When = PostTransaction
Exec = /usr/bin/systemctl --runtime unmask halt.target poweroff.target reboot.target kexec.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target sleep.target
Depends = systemd

로그아웃이 차단되지는 않습니다.pacman그러나 성공적으로 실행될 때까지 종료 기능은 비활성화됩니다 . 따라서 팩맨을 계속 실행하려면 tmux터미널 애플리케이션이 닫힐 때 중단되는 것을 방지하기 위해 팩맨을 터미널 멀티플렉서(예: pacman )에 넣는 것이 좋습니다 .

관련 정보