여기에 작은 질문이 있습니다. 사양을 살펴보기 전에 저는 VMware, GUI Xfce4에서 Debian 10 가상 서버를 사용하고 있으며 사용자는 RDP를 통해 해당 서버에 터미널 액세스할 수 있습니다.
즉, 사용자가 30분 동안 화면에서 상호 작용하지 않으면 세션을 종료한다는 아이디어입니다.
이것을 알고 나면 두 가지 옵션이 있습니다
Xfce4-session-logout --logout
.pkill -u $ user
내 문제는 모니터 0이 사용되고 있기 때문에 XRDP를 사용하여 비활성 시간(밀리초)을 display 0
캡처 할 수 없다는 것입니다 . xprintidle
이 문제를 해결하는 다른 방법을 아는 사람이 있습니까?
내가 덜 귀속적인 또 다른 방법은 그가 30분마다 세션을 종료한다는 것입니다. 이를 위해 crontab a 에서 정의했지만 pkill -u $ user
닫을 때마다 pkill
사용자가 GUI에서 세션으로 돌아올 때 시작되지 않습니다. 그래서 xfce4-session-logout
crontab과 명령을 사용하려고 했지만 * / 30 * * * * / bin / sh xfce4-session-logout --logout
작동하지 않았습니다.
누구든지 해결책이 있습니까?
답변1
Xfce4-session-logout --logout
XScreenSaver의 상태를 모니터링하고 30분 동안 활동이 없으면 호출하도록 스크립트를 설정할 수 있습니다 . 아마도 이 스크립트는 부팅이나 로그인 시 시작되어야 할 것입니다. man xscreensaver-command
특히 -watch
상태 정보에 대한 다음 예와 상태에 따라 사운드를 제어하는 스크립트가 포함된 옵션을 살펴보세요 .
XScreenSaver 상태 정보의 예:
BLANK Fri Nov 5 01:57:22 1999
RUN 34
RUN 79
RUN 16
LOCK Fri Nov 5 01:57:22 1999
RUN 76
RUN 12
UNBLANK Fri Nov 5 02:05:59 1999
스크립트 예:
#!/usr/bin/perl
my $blanked = 0;
open (IN, "xscreensaver-command -watch |");
while (<IN>) {
if (m/^(BLANK|LOCK)/) {
if (!$blanked) {
system "sound-off";
$blanked = 1;
}
} elsif (m/^UNBLANK/) {
system "sound-on";
$blanked = 0;
}
}
답변2
"사용자는 rdp를 통해 액세스합니다." 즉, 이 서버에서 xrdp를 실행하고 있습니까?
그런 다음 시간 초과를 설정할 수 있습니다/etc/xrdp/sessman.ini, 부분[회의]:
유휴 시간 제한=1800
30m=60x30초=1800초