기존 답변이나 솔루션을 놓쳤다면 죄송합니다. 검색 결과 아직 실행 가능한 솔루션이 나오지 않았습니다.
질문:
내 컴퓨터에는 Windows와 Linux가 포함되어 있으며 Linux가 기본 운영 체제입니다. Windows는 가끔씩 사용되며 종료할 때 재부팅하고 몇 가지 업데이트를 설치한 다음 실제로 종료하는 경향이 있습니다. 그러나 Linux가 기본 부팅 대상이므로 이 재부팅 및 종료는 Linux로 부팅되고 로그인 시 Linux에 무기한 유지됩니다. 로그인하지 않고 종료한 지 5~10분 후에 시간 초과가 발생하도록 하고 싶습니다.
해결 방법/시도:
내가 만난/etc/systemd/login.conf에서 시간 초과 설정
IdleAction=poweroff
IdleActionSec=10min
그러나 적극적으로 타이핑을 하고 있음에도 불구하고 10분 후에 세션이 종료됩니다.
나도 그걸 알아차렸어이 게시물, 주기적으로 사용자의 로그인 여부를 확인한 후 종료하는 방법에 대해 설명합니다. 불행하게도 저는 bash 스크립트를 작성하거나 시스템 타이머를 설정한 적이 없습니다. 그래서 이 답변에 대해 조금 이해가 되지 않습니다.
내 설정:저는 Arch Linux를 실행 중이고 로그인은 콘솔 기반 tty 로그인입니다.
팁이나 제안을 보내주셔서 감사합니다.
답변1
두 개의 시스템 장치와 스크립트를 만듭니다.
첫 번째 단위:
/etc/systemd/system/are-users-logged.timer
[Unit]
Description=Start check for logged users
[Timer]
OnBootSec=15min
Unit=shutdown-ifno-logged-users
[Install]
WantedBy=timers.target
shutdown-ifno-logged-users.service
부팅 후 15분에 한 번 실행합니다.
두 번째 단위:
/etc/systemd/system/shutdown-ifno-logged-users.service
[Unit]
Description=Shutdown if there are no logged users
[Service]
Type=oneshot
User=root
ExecStart=script_to_check_logged_users
로그인한 사용자를 확인하는 스크립트를 시작합니다.
스크립트에서 로그인한 사용자가 없으면 loginctl --no-pager list-users
출력이 구문 분석되거나 닫힙니다.who -q
다른 사람이 로그인했다가 로그아웃했다가 다시 시작하는 것을 방지하고 싶은 경우타이머가 작동하기 전에이와 같은 방법으로 are-users-logged.timer
차단을 시도할 수 있습니다. 하지만 사용자가 루트가 아닌 경우 비밀번호 요청으로 인해 문제가 있을 수 있다고 생각합니다./etc/profile.d/somescript.sh
sudo systemctl stop are-users-logged.timer
/tmp에서 echo
from을 사용하여 /etc/profile.d/somescript.sh
누군가 로그인했음을 나타내는 파일을 생성하고 script_to_check_logged_users
해당 파일이 있는지 확인한 후 종료를 건너뛰는 것이 좋습니다.
답변2
로그인하지 않고 종료한 지 5~10분 후에 시간 초과가 발생하도록 하고 싶습니다.
아마도 grub 시간 초과 기능이 귀하의 요구 사항을 충족할 것입니다.
grub 구성에 중지 명령을 사용하여 사용자 정의 메뉴 항목을 추가하고 이를 기본값으로 설정합니다. grub 시간 초과를 원하는 값으로 설정합니다. 전원을 켜거나 재부팅한 후 grub은 기본 항목을 선택하고 시간 초과 후 사용자 활동이 없으면 컴퓨터를 종료합니다.
운영 체제를 부팅하려면 메뉴 항목을 수동으로 선택하고 실행해야 합니다.
아치용에 추가/etc/grub.d/40_custom
menuentry "System shutdown" {
echo "System shutting down..."
halt
}
기본 선택된 항목을 변경하려면 /etc/default/grub
값을 편집하고 변경하십시오 GRUB_DEFAULT
.
GRUB_DEFAULT='System shutdown'
그 다음에
sudo grub-mkconfig -o /boot/grub/grub.cfg