중요한 프로세스가 중단되지 않도록 종료를 비활성화하는 방법은 무엇입니까?

중요한 프로세스가 중단되지 않도록 종료를 비활성화하는 방법은 무엇입니까?

중요한 프로세스가 실행 중일 때 재부팅/종료를 비활성화하거나 일시적으로 일시 중단하는 가장 간단한 방법은 무엇입니까? 프로세스를 완료하는 데 시간이 너무 오래 걸리고 일시 중지/재개할 수 없으므로 실행 중에 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

업그레이드 중에 로컬 사용자가 노트북을 종료하는 것을 방지하고 싶었습니다. 입력 장치를 비활성화하는 것이 가장 좋은 방법이었습니다. 나에게는 마우스를 비활성화하는 것만으로도 충분했지만 키보드도 비활성화할 수 있습니다.

물론 이 기간 동안 컴퓨터를 사용할 수 없다는 단점이 있습니다.

Unix(X 아래)에서 키보드 및 마우스 입력 비활성화

관련 정보