ここに小さな質問があります。仕様を調べる前に、VMware、GUI Xfce4でDebian 10仮想サーバーを使用しており、ユーザーはRDPを介してそのサーバーにターミナルにアクセスできます。
つまり、ユーザーが30分間画面で対話しなかった場合、セッションを終了するというアイデアです。
これがわかったら、2つのオプションがあります
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秒