2012-04-16 1 views
-1

сценарии в /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

редактировать: Я хочу, чтобы найти имя пользователя реального входа в систему, в то время как скрипт запускается с помощью корня.

+0

Много путаницы и отсутствует реальный прецедент. С одной стороны, вы, похоже, хотите получить список (активных) пользовательских сеансов, с другой стороны, вы, похоже, ожидаете, что он будет работать * до того, как будут запущены сеансы (ы), что является просто бессмыслицей. Не так много, чтобы помочь здесь, если вопрос не изменен, чтобы иметь смысл. –

ответ

0

Вы ищете имя пользователя, выполняющего скрипт? Как насчет:

user=$(id -un) 
+0

Пользователь, выполняющий сценарий, является root. Я хочу найти имя пользователя входа – comicosmos