Dans /etc/NetworkManager/dispatcher.d les scripts seront exécutés et les paramètres seront transmis aux scripts par NetworkManager.Le script Dispatcher NetworkManager
Un de mes BIOS de portable est défectueux, je dois synchroniser manuellement l'heure, et faire la mise à niveau du système BTW. Je travaille avec un script pour automatiser cette tâche. est ici le script: #/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"
(le script est appelé avant fenêtre x, en tant que root)
user=$(who | grep "$DISPLAY" | awk '{print $1}' | tail -n1)
ne peut pas trouver le nom d'utilisateur de connexion. Mais cela fonctionne en xterm. Quelqu'un peut-il aider?
J'utilise archlinux i686 + openbox + lxpanel
modifier: Je veux trouver le nom d'utilisateur de connexion réelle, alors que le script est exécuté par root.
Beaucoup de confusion et manquant un cas d'utilisation réel. D'une part, vous semblez vouloir obtenir une liste de sessions utilisateur (actives), d'autre part, vous semblez vous attendre à ce que cela fonctionne * avant que la (les) session (s) ne soit démarrée, ce qui est juste un non-sens. Pas grand chose d'utile ici à moins que la question soit modifiée pour avoir un sens. –