/etc/NetworkManager/dispatcher.d内のスクリプトにはexecがあり、NetworkManagerによってスクリプトにパラメータが渡されます。NetworkManagerディスパッチャスクリプト
私のノートパソコンのBIOSの1つが誤動作しています。私は手動で時刻を同期し、システムを更新する必要があります。私はこの作業を自動化するスクリプトを使って作業しています。 はここにスクリプトです:! #/ binに/ shの
IF=$1
STATUS=$2
if [ "$STATUS"x != 'up'x -o "$(date +%Y)" -gt "2012" ] ;then
exit
fi
logger "==$0=="
wait_for_process(){
PNAME=$1
PID=`pgrep $PNAME`
while [ -z "$PID" ];do
logger "waiting $1 running for another 3 sec.."
sleep 3;
PID=`pgrep $PNAME`
done
logger "$1 is running!"
}
wait_for_process nm-applet
wait_for_process lxpanel
export DISPLAY=$(echo $DISPLAY | cut -c -2)
if [ -z $DISPLAY ];then
export DISPLAY=:0
fi
#below cmd will yield null string for $user
user=$(who | grep "$DISPLAY" | awk '{print $1}' | tail -n1)
#so I have to hardcode the user name:(
user=xxx
export XAUTHORITY="/home/$user/.Xauthority"
logger "Display $DISPLAY user $user"
su $user -c "xterm -e 'sudo /usr/bin/ntpd -qdg && sudo yaourt -Syua' &" || logger "cannot run xterm"
(スクリプトはrootとして実行、Xウィンドウの前に呼び出されます)
user=$(who | grep "$DISPLAY" | awk '{print $1}' | tail -n1)
ログインユーザー名を見つけることができません。しかし、それはxtermで動作します。 誰かを助けることができますか?
私はi686のをarchlinux使用しています+ +このOpenBox lxpanel
編集: 私はスクリプトがrootで実行されている間、実際のログインユーザー名を見つけたいと思います。
多くの混乱と実際の使用例がありません。一方では、(アクティブな)ユーザセッションのリストを取得したいと思われる一方で、セッションが開始される前に*動作していると思われます。これはちょっとナンセンスです。質問が理にかなうように変更されていない限り、ここではあまり役に立たない。 –