at 18:00 shutdown now
그리고 shutdown 18:00
, 같은 서비스를 출시하고 있나요? 그들은 같은 방식으로 작동합니까?
답변1
at 18:00 shutdown now
at
cron
시스템에 따라 데몬 또는 daemon 에 의해 지정된 시간에 실행되는 "at" 작업을 생성합니다 .
shutdown 18:00
셸에서 프로세스를 시작하고 지정된 시간 동안 기다린 다음 종료를 수행합니다. 셸 세션이 종료되면 이 명령을 종료할 수 있습니다.
대부분의 경우 최종 결과는 동일합니다. 시스템이 18:00에 종료됩니다.
at
한 가지 차이점은 Unexpected를 사용하는 경우
또 다른 차이점은 shutdown 18:00
예약 시간 5분 전에 파일을 생성해 /run/nologin
그 시간 이후에는 로그인을 할 수 없다는 점이다. 또한, 로그인한 사용자에게 시스템이 곧 종료될 것임을 경고하기 위해 브로드캐스트 메시지가 전송됩니다.
어떤 것을 사용할지 결정하려면 이러한 차이점을 고려해야 합니다.
답변2
이제 systemd에 답이 있습니다.
CentOS 7이 있고 시스템 운영 체제가 있는 경우 대답은 다릅니다.
at 18:00 shutdown now
at
예약은 여전히 하위 시스템을 통해 이루어 지지만 shutdown
명령과 직접 호출하는 명령은 shutdown 18:00
다릅니다. 실제로는 시스템화된 프로그램입니다 systemctl
. systemctl
일을 다르게 하십시오.
먼저, 이 예와 매우 유사하게 systemctl
예약된 종료 요청이 데몬에 의해 처리되도록 전송됩니다 . at
그러나 구체적으로 이는 하위 시스템이 아닌 systemd 데몬 logind
( systemd-shutdownd
2015년 5월에 systemd에서 제거되었으며 CentOS 7의 후속 마이너 버전으로 이어진 변경 사항) 입니다 at
. systemctl
내부 프로토콜을 (시스템 전체의) 데스크탑 버스 에이전트에 전달하고, 이는 다시 logind
.
따라서 이 경우처럼 카운트다운하고 메시지를 생성하는 프로세스가 at
없습니다 . 따라서 일정에 영향을 주지 않는 로그아웃이 가능하며, 취소는 로그인 세션의 포그라운드 프로세스를 중단/종료하는 것만큼 간단하지 않습니다. 와 마찬가지로 .shutdown
wall
at
거기아직at
이 경우와 달리 메시지 는 에서 전송됩니다 logind
. 이 상황과 달리 at
예약된 작업은 시스템 재부팅 후에도 지속되지 않으므로 실제 종료 시 예약된 작업이 취소됩니다. 거기예파일 시스템에 있는 파일이지만 /run/systemd/shutdown
그 아래에 비영구적 저장소가 있습니다.
또 다른 차이점은하나한 사람이 at
한 번에 여러 작업을 제출할 수 있지만 정책 도구 키트는 shutdown
로그인 세션 컨텍스트에서 실행되는 작업에 적용되는 규칙 at
과는 다른 비 shutdown
로그인 세션 컨텍스트에서 작업으로 실행되는 규칙을 적용합니다. 후자가 더 관대할 수 있습니다.특권이 없는시스템을 종료하기 위해 활성 로그인 세션에 로그인하는 사용자입니다.