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

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

ログイン スクリプトの書き方を独学で学んでいますが、ログアウト スクリプトの書き方に関する情報を見つけるのに苦労しています。ユーザーが 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

ログイン スクリプトで次のコードを使用すると、期待どおりに動作することがわかっています。では、LOGOUT スクリプトでその逆を行うにはどうすればよいでしょうか?

# 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

どのような助けでも本当にありがたいです。ありがとう。

答え1

CtrlキーとAltキーを同時に押すTか、ダッシュでターミナル (またはコマンド ラインとも呼ばれます) を見つけて開きます。

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

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

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

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

保存して終了。

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

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

ターミナルからログアウトするスクリプトだけが必要な場合は、それを に入力するだけです~/.bash_logout

関連情報