web-dev-qa-db-ja.com

ログアウトスクリプトの実行

ログインスクリプトの記述方法を教えてきましたが、ログアウトスクリプトの記述に関する情報を見つけるのが困難です。ユーザーがXセッションからログアウトしたときのログエントリを記録できるようにしたい。

ログアウト時に実行したいものは次のとおりです。

#!/bin/bash

# This script is intended to record when a user logs out of a TTY Shell or the X session.
# This will record the results to a log file: logoutScript.log

# Variables used in this script.
dDate=$(date +%Y/%m/%d)
dTime=$(date +%l:%M%P)
logDir=/opt/scripts/logs
logFile=$logDir/logoutUser.log

# Begin operation of script.
echo "$dDate, $dTime - User '$USER' has logged out of the system." >> $logFile

# End of file
exit 0

ログインスクリプトで次を使用すると、希望どおりに機能することを知っています。それでは、ログアウトスクリプトの逆を行うにはどうすればよいですか?

# Detect if user is logged into TTY Shell or X session, then execute corresponding login script.
if xhost >& /dev/null ; then
    gnome-terminal -e "bash -c \"cd /opt/scripts && ./loginScripts.sh && cd $HOME \""
else 
    bash -c "cd /opt/scripts && ./loginScripts.sh && cd $HOME"
fi

私は本当に助けていただければ幸いです。ありがとう。

2
mc3mcintyre

一緒に押すことにより、ターミナル(またはコマンドライン)を開きます。 Ctrl+Alt+T またはダッシュで見つけてください。

このコマンドSudo gedit /etc/lightdm/lightdm.confを実行します。これにより、/etc/lightdmフォルダーにあるlightdm.confファイルでテキストエディターが開きます。

ファイルには[SeatDefaults]という行が必要です。この行の下に、session-cleanup-script=/path/to/your-script.shと入力します。ここで、/path/to/your-script.shは、実行するスクリプトの実際のアドレスです。

注:次を実行して、スクリプトが実行可能に設定されていることを確認してください。

Sudo chmod +x /path/to/script.sh

保存して終了。

注:バージョン14.04の時点では、構成ファイルは存在しないため、次のコマンドを使用してサンプルファイルから手動でORコピーして作成する必要があります。

Sudo sh -c 'zcat /usr/share/doc/lightdm/lightdm.conf.gz > /etc/lightdm/lightdm.conf'

Lime aターミナルのログアウトでスクリプトが必要な場合は、~/.bash_logoutに入れてください。

0
Camden