shutdown -h TIME/+DELAY
가끔 사용하고 싶습니다 . 그러나 우분투에서 시스템으로 전환했기 때문에 상황이 약간 바뀌는 것처럼 보입니다.
이전 종료 명령으로 더 이상 새 명령을 실행할 수 없다는 사실 외에도 현재 종료 프로세스의 계획된 종료 시간을 확인하는 방법을 알 수 없습니다.
ps aux | grep shutdown
계획된 종료 시간을 확인 하기 위해 방금 실행 했습니다.
이제 systemd를 사용하면 다음과 같이 표시됩니다.
root 5863 0.0 0.0 13300 1988 ? Ss 09:04 0:00 /lib/systemd/systemd-shutdownd
그러한 프로세스의 예정된 종료 시간을 어떻게 확인할 수 있습니까?
시도 shutdown -k
했지만 벽 메시지 만 쓰는 대신 예약 된 종료 시간을 현재 +1 분으로 변경하는 것 같습니다.
답변
첫 번째 인수는 시간 문자열 (일반적으로 “지금”임) 일 수 있습니다.
시간 문자열은 24 시간 형식으로 지정된 종료 시간을 지정하는 시간 / 분 동안 “hh : mm”형식 일 수 있습니다. 또는 지금부터 지정된 시간 (분)을 나타내는 구문 “+ m”에있을 수 있습니다. “now”는 “+0″의 별명입니다. 즉, 즉시 종료를 트리거합니다. 시간 인수를 지정하지 않으면 “+1″이 내포됩니다.
시험:
# shutdown +5
# systemctl status systemd-shutdownd.service
다음과 같이 보일 것입니다 :
● systemd-shutdownd.service - Delayed Shutdown Service
Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static; vendor preset: enabled)
Active: active (running) since Tue 2015-09-15 09:13:11 UTC; 12s ago
Docs: man:systemd-shutdownd.service(8)
Main PID: 965 (systemd-shutdow)
Status: "Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)..."
CGroup: /system.slice/systemd-shutdownd.service
└─965 /lib/systemd/systemd-shutdownd
Status
이다 Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)...
답변
# cat /run/systemd/shutdown/scheduled
USEC=1537242600000000
WARN_WALL=1
MODE=poweroff
USEC는 마이크로 초 정밀도의 유닉스 시대 타임 스탬프입니다.
if [ -f /run/systemd/shutdown/scheduled ]; then
perl -wne 'm/^USEC=(\d+)\d{6}$/ and printf("Shutting down at: %s\n", scalar localtime $1)' < /run/systemd/shutdown/scheduled
fi
다음과 같이 표시됩니다.
Shutting down at: Tue Sep 18 03:50:00 2018
시스템 버전은 Debian Stretch에서 실행되는 232-25 + deb9u4 입니다.
답변
최신 Linux 배포판 버전의 경우 다음을 수행해야 할 수도 있습니다.
busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown
종료 작동 방법이 변경되었습니다
시도 :-데비안 스트레치 9.6-우분투 18.04.1 LTS
참고 문헌
답변
같은 질문이 발생하여 종료 계획을 확인하는 다른 방법을 찾았습니다.
종료 계획을 설정하면 wall 은 메시지 권한을 yes로 설정하여 로그인 한 모든 사람에게 메시지를 보냅니다. wall을 호출 할 때마다 syslog에 알림이 작성됩니다 . syslog 를 검색하려면 명령을 실행 journalctl -u systemd-shutdownd
하면 -u
옵션이 로그를 단위로 필터링 할 수 있습니다.
를 실행하면 journalctl -u systemd-shutdownd
아래와 같은 종료 세부 정보가 표시됩니다.
[root@dev log]# journalctl -u systemd-shutdownd
-- Logs begin at Mon 2017-06-12 09:39:34 CST, end at Mon 2017-06-12 14:05:04 CST. --
Jun 12 09:39:50 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:39:50 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:39:50 dev.local systemd-shutdownd[1249]: Shutting down at Mon 2017-06-12 21:00:00 CST (poweroff)...
Jun 12 09:55:59 dev.local systemd-shutdownd[1249]: Shutdown canceled.
Jun 12 09:56:07 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:56:07 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:56:07 dev.local systemd-shutdownd[2885]: Shutdown canceled.
Jun 12 11:54:15 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 11:54:15 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 11:54:15 dev.local systemd-shutdownd[3178]: Shutting down at Mon 2017-06-12 20:00:00 CST (poweroff)...
답변
Ubuntu 18.04에서 시스템 종료는에 의해 관리됩니다 systemd
. 내 컴퓨터에서 무인 업그레이드를 통해 자동 재부팅을 활성화했습니다.
$ grep Automatic-Reboot /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
예약 된 자동 재부팅 시간은에 저장됩니다 /run/systemd/shutdown/scheduled
.
$ cat /run/systemd/shutdown/scheduled
USEC=1563976800000000
WARN_WALL=1
MODE=reboot
다음 명령을 사용하여이를 사람이 읽을 수있는 시간으로 변환 할 수 있습니다.
$ date -d "@$( awk -F '=' '/USEC/{ $2=substr($2,1,10); print $2 }' /run/systemd/shutdown/scheduled )"
Thu Jul 25 02:00:00 NZST 2019