중요한 프로세스가 실행되는 동안 재시작/종료를 비활성화하거나 일시적으로 일시 중단하는 가장 쉬운 방법은 무엇입니까? 프로세스를 완료하는 데 시간이 오래 걸리고 일시 중지/재개할 수 있는 방법이 없으므로 컴퓨터가 실행되는 동안에는 종료하지 않는 것이 좋습니다. 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
업그레이드 프로세스 중에 로컬 사용자가 랩톱을 종료하지 못하도록 하고 싶습니다. 입력 장치를 비활성화하는 것이 가장 좋은 방법입니다. 나에게는 마우스를 비활성화하는 것만으로도 충분했지만 키보드도 비활성화할 수 있습니다.
물론 이 시간 동안 컴퓨터를 사용할 수 없다는 단점이 있습니다.