답변:
최신 Ubuntu 버전은 systemd를 사용하며 일회용 명령에 대한 기존 atd
및 관련 at
스케줄러가 설치되어 있지 않거나 실행되지 않는 경우 일회용 명령을 예약하여 다음systemd-run
을 수동으로 생성하는 것보다 다소 쉽습니다 systemd timer
.
systemd-run --on-calendar="2019-08-31 20:00:00 CET" /sbin/shutdown now
이 at
명령은 향후 실행을 예약합니다.
예 :
% at 8pm Aug 31
at> echo hello
at> <EOT>
job 161 at Sat Aug 31 20:00:00 2019
( "<EOT>"는 control-D를 눌러 생성했습니다)
% atq
161 Sat Aug 31 20:00:00 2019 a sweh
당신은 넣을 수 있습니다 shutdown
여기에 명령을.
at
게시 할 때 잊어 버렸습니다 - at
회사에서는 일반적 으로 구성 관리 / 배포와 관련된 규칙에 따라 허용되는 방법이 at
또는 cron
일 수 있지만 분명히 의미 합니다.
at
파이프에서 명령을받을 수도 있습니다 echo "echo yup > $(tty)" | at now
.
at
이 작업을 수행하는 확실한 방법 이지만 시스템이 종료 된 후에도 계속 작동하므로 예약 된 시스템 종료 전에 시스템이 재부팅되면 예약 된 시간에 시스템이 다시 종료 될 수 있습니다. 따라서 bash와 GNU 날짜를 사용하면 지연 종료를 사용할 수 있습니다.
/sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))
주의 : 이것은 1 분까지 정확합니다. 예약 된 시간을 변환하고 UNIX 시대 이후 초로 변환하고 차이를 계산하고 분으로 변환 한 다음이를 종료 지연으로 사용합니다. 예약 된 시간이 지난 경우 제대로 작동하지 않습니다.
더 나은 shutdown
명령을 사용하십시오 .
van Smoorenburg, Upstart 및 systemd shutdown
명령은 날짜 지정을 허용하지 않습니다. 그러나 BSD shutdown
명령은 종료 시점에 대한 형식으로 날짜 값을 사용합니다 yymmddhhmm
. 이것은 4BSD 이후로 계속 적용되었으며 FreeBSD 및 OpenBSD에서도 마찬가지입니다. NetBSD는 그것을 확장했습니다 ccyymmddhhmm
.
nosh 툴셋도 BSD에서 사용할 수 있기 때문에, shutdown
명령에 동일한 기능을 부여 하여 CCYYMMDDHHMM
NetBSD 에 따라 확장했습니다 . 또한 nosh 툴셋은 Linux에서도 사용할 수 있기 때문에 Linux는 종료 명령을 제공합니다.
물론 nosh와 함께 작동합니다 system-manager
. 다른 시스템에서도 작동합니다. 그것은 프로세스 # 1에 신호를 보내서 물건을 제정하고 같은 신호를 같은 다른 시스템 관리자에 의해 이해 systemd
합니다.
그것을 사용하거나 비슷한 도구를 사용할 수 있습니다. 또는 다른 리눅스 shutdown
프로그램 의 제작자들 에게 BSD만큼 기능을 발휘할 수 있도록 도구를 확장 시키도록 설득 할 수 있습니다 shutdown
.
shutdown
. nosh 툴셋 매뉴얼 페이지. 소프트웨어.system-manager
. nosh 툴셋 매뉴얼 페이지. 소프트웨어.shutdown
. 시스템 관리자 설명서 . NetBSD 매뉴얼 페이지. 2011-11-04.shutdown
. FreeBSD 시스템 관리자 매뉴얼 . 2018-01-01.shutdown
. OpenBSD 매뉴얼 페이지. 2015-01-21.shutdown
명령에 연도를 입력하는 옵션이있을 수 있지만 cron을 사용하여 특정 시점에서 명령을 한 번만 실행할 수 있습니다. 예를 들어보십시오.
0 0 31 8 ? 2019 shutdown
위의 내용은 표준 cron 구문이 아닙니다.
year
필드 가 없습니다crontab
shutdown
. 다른 답변에서 썼 듯이, 당신이 이것을 원한다면 당신shutdown
은 집을 돌아 다니는 것보다 수십 년의 구문으로 체계화 된 사람들이 도구를 더 유능 하게 만들도록 설득 할 수systemd-run
있습니다.