[unix] systemd : 지연된 종료 예정 시간을 확인하는 방법은 무엇입니까?

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 분으로 변경하는 것 같습니다.



답변

man shutdown (8)의 말 :

첫 번째 인수는 시간 문자열 (일반적으로 “지금”임) 일 수 있습니다.

시간 문자열은 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


답변