сценарии в /etc/NetworkManager/dispatcher.d получат exec и параметры будут переданы скриптам NetworkManager.Сценарий диспетчера NetworkManager
Один из моих ноутбуков BIOS неисправен, мне нужно вручную синхронизировать время и выполнить обновление системы BTW. Я работаю со сценарием для автоматизации этой задачи. Вот сценарий: #/бен/ш
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"
(скрипт вызывается до х окна, запустить как корень)
user=$(who | grep "$DISPLAY" | awk '{print $1}' | tail -n1)
не может найти имя пользователя Логин. Но он работает в xterm. Может кто-нибудь помочь?
Я использую Archlinux i686 + Openbox + LXPanel
редактировать: Я хочу, чтобы найти имя пользователя реального входа в систему, в то время как скрипт запускается с помощью корня.
Много путаницы и отсутствует реальный прецедент. С одной стороны, вы, похоже, хотите получить список (активных) пользовательских сеансов, с другой стороны, вы, похоже, ожидаете, что он будет работать * до того, как будут запущены сеансы (ы), что является просто бессмыслицей. Не так много, чтобы помочь здесь, если вопрос не изменен, чтобы иметь смысл. –