다음과 같이 at 명령을 사용하여 컴퓨터 종료를 예약하려고 합니다.
echo "systemctl poweroff" | at -M now +1 minute
또는 다음과 같습니다:
echo "sudo systemctl poweroff" | at -M now +1 minute
그러나 아무 일도 일어나지 않았습니다. 왜?
atd
실행하면 다음 명령이 제대로 작동하는지 확인하기만 하면 됩니다.
echo "echo Hello 2>&1 > /home/<user_name>/at-test.txt" | at -M now +1 minute
예약된 폐쇄를 사용하는 것이 가능하다는 것을 알고 있습니다 shutdown -P TIME
. 하지만 다른 대안을 지적하기보다는 먼저 제 질문에 답변해 주시기 바랍니다. 그럼 내가 뭘 잘못하고 있는 걸까요?
답변1
정책 도구 키트는 로그인된 세션의 shutdown
컨텍스트에서 실행되는 규칙에 적용하는 것과는 다른 작업으로 비로그인 세션 (다른 이름의 프로그램)의 컨텍스트에서 실행되는 규칙에 규칙을 적용할 수 있습니다.poweroff
systemctl
at
shutdown
sudo
이 푸딩에는 계란이 너무 많아서 불필요하게 복잡성이 추가되었습니다. 시스템은이미권한이 없는 사용자와 어떤 컨텍스트에서 시스템 종료를 성공적으로 트리거할 수 있는지 결정하는 규칙을 적용합니다. sudo
추가 메커니즘 추가가장 중요한 것은이는 단순히 액세스 규칙 세트의 수를 두 배로 늘리고 문제 진단 시 고려해야 할 가능한 시나리오의 수를 늘립니다.
추가 읽기
- https://unix.stackexchange.com/a/465337/5132
- https://unix.stackexchange.com/a/196014/5132
- Lennart Petlinget al. (2014).
systemd-logind.service
. 시스템 매뉴얼 페이지. freedesktop.org. - 종료 및 정지시 인증 필요 (아래 시간 예정)
- Ubuntu에서 "종료" 및 "전원 끄기" 명령 비활성화
- https://askubuntu.com/questions/536591/