답변:
at 18:00 shutdown now
"at"작업을 작성합니다.이 작업은 시스템에 따라 at
데몬 또는 데몬 이 지정된 시간에 수행 cron
합니다.
shutdown 18:00
지정된 시간까지 대기 한 다음 종료를 수행하는 프로세스를 셸에서 시작합니다. 예를 들어 쉘 세션이 종료되면이 명령을 종료 할 수 있습니다.
대부분의 경우 최종 결과는 동일합니다. 시스템이 18:00에 종료됩니다.
한 가지 차이점은을 사용 at
하면 작업이 저장되고 18:00 이전에 다른 방법으로 시스템을 종료 한 경우 다시 부팅 할 때 작업이 여전히 실행 대기 중이라는 것입니다. 시간이 이미 지나면 즉시 종료가 수행되어 예상치 못한 결과가 발생할 수 있습니다.
또 다른 차이점은 예약 된 시간 5 분 전에 파일 shutdown 18:00
을 작성하여 /run/nologin
해당 순간 이후에 사람들이 로그인하지 못하게하는 것입니다. 또한 브로드 캐스트 메시지가 전송되어 로그인 한 사용자에게 시스템 종료 예정임을 경고합니다.
사용할 차이점을 결정하려면 이러한 차이점을 고려해야합니다.
nohup
하거나 disown
또는 일반적으로 로그 아웃 경우 어떤 죽이는 실행 백그라운드 프로세스를. 시스템마다 기본값이 다를 수 있습니다. (나는 실제로 sudo shutdown
실행중인 프로세스 가 있다고 가정하고 있습니다. 단지 init
셧다운 타이머를 시작하라는 신호 입니다. 후자는 실제로 발생하지만 최근에 확인하지는 않았습니다. )
at
통해 작동 합니까? cron
atd
CentOS 7을 사용하는 경우 시스템 운영 체제가 있고 그 대답이 다릅니다.
at 18:00 shutdown now
여전히 at
하위 시스템을 통해 예약 하지만 해당 shutdown
명령과 직접 호출 하는 명령 shutdown 18:00
은 다릅니다. 실제로 시스템의 systemctl
프로그램입니다. systemctl
다르게 행동합니다.
우선 systemctl
, 예약 된 종료 요청을 보내어 dæmon에 의해 처리되도록합니다 at
. 그러나 이것은 하위 시스템이 아닌 시스템화 된 데몬 logind
( 특히, systemd-shutdownd
2015 년 5 월에 시스템에서 제거 된 이후의 마이너 버전의 CentOS 7로 변경된 데몬) at
입니다. systemctl
(시스템 전체) Desktop Bus 브로커에 내부 프로토콜을 말하고와 통신합니다 logind
.
따라서 경우와 같이 메시지를 카운트 다운하고 생성하는 프로세스 at
는 없습니다 . 따라서 로그 아웃 할 수 있으며 이는 스케줄에 영향을 미치지 않으며, 취소는 단순히 로그인 세션의 포 그라운드 프로세스를 중단 / 종료하는 것만 큼 간단하지 않습니다. 와 마찬가지로 .shutdown
wall
at
이 여전히 메시지는 달리, at
케이스,하지만이 발행된다 logind
. 또한 at
경우 와 달리 예약 된 작업은 시스템을 다시 시작해도 지속되지 않으므로 실제 종료는 예약 된 작업을 취소합니다. 이 인 파일 시스템에서 파일이 있지만 아래 /run/systemd/shutdown
비 영구 저장소이다.
또한 한 번에 하나의 예약 된 종료 만있을 수 있지만 여러 at
작업을 제출할 수 있으며 정책 키트는 shutdown
로그인하지 않은 컨텍스트 at
에서 shutdown
실행 되는 규칙과 다른 작업으로 실행 되는 규칙을 적용 합니다. 로그인 세션 컨텍스트. 후자는 더 허용적일 수 있는데, 예 를 들어 활성 로그인 세션에 로그인 한 권한이없는 사용자가 시스템을 종료 할 수 있습니다.
shutdown 18:00
쉘에서 대기하는 프로세스를 시작합니다." 그 전에 로그 아웃하면 어떻게 되나요?