-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathgnomelogout.sh
executable file
·37 lines (31 loc) · 1.07 KB
/
gnomelogout.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
PROC_NAME="type=signal,member=CustomSignal"
ProcNumber=`ps -ef |grep -w "$PROC_NAME"|grep -v grep|wc -l`
if [ $ProcNumber -gt 0 ];then
exit
fi
logout() {
echo $1
if echo "$1" | grep -q "gnomelogout"; then
#if echo "$1" | grep -q "interface=org.freedesktop.PackageKit.Transaction; member=Destroy"; then
#if [[ $1 == *"org.freedesktop.DBus.Local; member=Disconnected"* ]]; then
#if [ "$1" = "Logout" ]; then
sleep 1
echo "清理并重新启动 XServer."
/usr/bin/startXServer restart 0
/usr/bin/wslfcitx reload
pn=`ps -ef|grep -w "$PROC_NAME"|grep -v grep|awk '{print $2}'`
if [ "A$pn" != "A" ] ;then
if [ $pn -gt 0 ];then
kill -9 $pn >/dev/null
exit
fi
fi
elif [ "$1" = "Shutdown" ]; then
echo "Shutdown"
fi
}
/usr/bin/dbus-monitor "type=signal,member=CustomSignal" | while read line; do
#/usr/bin/dbus-monitor --system interface=org.freedesktop.PackageKit.Transaction | while read line; do
logout "$line"
done