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


10

중요한 프로세스가 실행 중일 때 재부팅 / 종료를 비활성화하거나 일시적으로 중지시키는 가장 간단한 방법은 무엇입니까? 프로세스를 완료하는 데 시간이 너무 오래 걸리고 일시 중지 / 다시 시작할 수 없으므로 PC가 실행되는 동안 PC를 종료하지 마십시오. cron에서 실행되므로 실행중인 프로세스를 수동으로 확인하지 않으면 프로세스가 실행되고 있는지 알 수 없습니다. 감사.


5
가능한 복제 : SO : 리눅스가 종료되는 것을 일시적으로 방지 하십시오. 대답은 쉘 스크립트 또는 데스크탑 환경의 전원 관리와 같은 다양한 레벨에 대한 힌트입니다.
sr_

나는 실행 수준에 대한 설명이나 설명에 대한 링크가 없으면 대답이 충분히 구체적이라고 생각하지 않습니다. U & L SE에는 없습니다. 사용중인 배포판과 버전을 물어볼 수 있습니까?
bsd

종료 프로 시저를 수정하지 않고 랩퍼를 작성하여 작업이 완료되었음을 표시하도록하십시오 (메일 또는 파일 터치). 작업 완료를 테스트 한 후 종료를 실행하십시오. (cron은 작업 결과를 소유자에게 메일로 보내지 만 조정할 수는 있습니다).
bsd

답변:


1

which shutdown종료 프로그램의 경로를 확인하려면 실행 하십시오. 권장하지는 않지만 파일 이름을 바꿀 수 있습니다.

다른 (유성) 방법. 별명 사용 : alias shutdown=' ' 이와 같은 것이 더 가역적입니다. 모든 사용자가 시스템을 종료하지 못하게하려면 별칭을 전체적으로 추가하십시오.


별칭을 사용할 생각입니다. 이제 스크립트 만 작성하면됩니다. 감사!
zang3tsu

중지 또는 전원 끄기와 같은 다른 명령은 어떻습니까? 별칭을 만들거나 이름을 바꿔야합니까?
mintyfreshpenguin

17

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'.

그러나이 문제가 있습니다 : 비 대화 형으로 루트로 실행하면 잠금이 무시됩니다. github.com/systemd/systemd/issues/2680
Alicia

나는 당신이 버그 리포트를 오해 생각, 그들은 실행에 대한 이야기 poweroff루트가 아닌 대화 형으로
Ferrybig

버그 보고서를 정확히 어떻게 잘못 읽었습니까? : S
Alicia

2

미션 크리티컬 서버에서 "shutdown / reboot / poweroff / halt / hostname"명령을 비활성화

chmod 0 /sbin/shutdown

그런 다음 사용해야 할 경우 chmod를 다시로 설정하십시오 chmod 0755.


1
무엇에 대한 halt, poweroff그리고 systemctl poweroff?
Martin Ueding

1

루트 만 명령을 실행할 수 있도록 / etc / sudoers 파일에서 명령을 비활성화합니다.

/ etc / sudoers에서

# Cmnd alias specification
Cmnd_Alias     SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
vmule   ALL=(ALL:ALL) ALL, !SHUTDOWN

그리고 명령을 실행하려고하면 :

vmule@debian:~$ sudo /sbin/shutdown  -r now
Sorry, user vmule is not allowed to execute '/sbin/shutdown -r now' as root on debian.vm

당신은 당신의 대답을 정교하게 할 수 있습니까? / etc / sudoers에 shutdown을 명시 적으로 지정하지 않을 수 있습니다.
Archemar

물론 더 나은 설명으로 답을 편집했습니다. 건배
vmule

0

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

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

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


-1

shutdown기술적으로도 응용 프로그램이므로 제거 할 수 있습니다. 를 실행하십시오 which shutdown. which응용 프로그램의 경로를 보여주는 명령입니다. 제 경우에는 출력은 /sbin/shutdown입니다. 당신이 할 수있는 파일 rm shutdown입니다. 또는 일시적으로 복사를 비활성화하려면 이름을 변경하고 원본 파일을 제거하십시오.

원하는 경우 충분한 권한이 있어야합니다 rm shutdown. 읽기 전용이므로 오류가 발생할 수 있습니다. root필요에 따라 제거 하거나 명령을 사용해보십시오 rm shutdown.


3
-r깃발? 하나의 파일에는 필요하지 않으며, 잘못 입력하면 재난이납니다.
MadTux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.