중요한 프로세스가 실행 중일 때 재부팅/종료를 비활성화하거나 일시적으로 일시 중단하는 가장 간단한 방법은 무엇입니까? 프로세스를 완료하는 데 시간이 너무 오래 걸리고 일시 중지/재개할 수 없으므로 실행 중에 PC를 종료하지 않는 것이 좋습니다. cron에서 실행되므로 실행 중인 프로세스를 수동으로 확인하지 않는 한 실행 중인지 알 수 없습니다. 감사해요.
답변1
systemd를 사용하는 최신 시스템의 경우 이는 systemd-inhibit
. 사용 예:
systemd-inhibit --why="Doing weekly backup" bash my-backups.sh
그런 다음 사용자가 종료를 시도하면 강제로 종료하지 않는 한 허용되지 않습니다.
❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.
답변2
which shutdown
종료 프로그램의 경로가 어디에 있는지 확인하려면 실행하세요 . 권장하지는 않지만 파일 이름을 바꿀 수 있습니다.
또 다른 (더 안전한) 방법. 별칭 사용: alias shutdown=' '
이와 유사한 것이 더 되돌릴 수 있습니다. 모든 사용자의 종료를 방지하려는 경우 전역적으로 별칭을 추가하세요.
답변3
미션 크리티컬 서버에서 명령과 같은 "shutdown/reboot/poweroff/halt/hostname"을 비활성화합니다.
chmod 0 /sbin/shutdown
그런 다음 사용해야 하는 경우 chmod를 다시 chmod 0755
.
답변4
업그레이드 중에 로컬 사용자가 노트북을 종료하는 것을 방지하고 싶었습니다. 입력 장치를 비활성화하는 것이 가장 좋은 방법이었습니다. 나에게는 마우스를 비활성화하는 것만으로도 충분했지만 키보드도 비활성화할 수 있습니다.
물론 이 기간 동안 컴퓨터를 사용할 수 없다는 단점이 있습니다.