cc inputfile -o nxuserlist
на nxuserlist владелец root и suid, все... будет делать nxserver --list $USER
2Djelf: Мой знакомый рейдер фабрику по производству костылей не знает, куда девать. Не интересует? Обещает быть бешеная прибыль.
В смысле, зачем такие навороты? - Вся инфа о сессиях есть у юзера в каталогах .nx/C-*
Не... их и так уже скопилось, раздаю забесплатно... Ах да, я изначально был против! Но если есть желание сделать оригинально, почему бы не попытаться? Каждый костыль имеет право вырасти в экзоскелет!
Хотя... за то время что ушло на написание постов можно было бы и патчик к nxserver сообразить....
P.S. инфа о юзерах в .nx/C-* бывает недостоверной.
Хотя... за то время что ушло на написание постов можно было бы и патчик к nxserver сообразить....
P.S. инфа о юзерах в .nx/C-* бывает недостоверной.
Это да. Сам так много написал, т.к. сейчас смежной проблемой занимаюсь
Твой пысы понял, что инфа о сессиях недостоверна, т.к. юзер там один.
Так инфу и проверить можно, в смысле живость сессии.
Например из пока не изданного:
get_sessdir4res()
# arg: session's smb mount port OR filename of printer/share descripion
# if share is nx-controlled and nxagent from his session are leave,
# then returns name of session dir (except dir of own sesson)
# functuion used if $ENABLE_SHARE_MULTIMOUNT=1 or $ENABLE_CUPS_SERVER_MODE=1 only
{
nxlog "$FUNCNAME: starting with args \"$@\""
[ "$1" -gt 0 2>/dev/null ] && digarg=1 || digarg=0
AGENT_PIDS="$(ps -wo pid=,cmd= -C "nxagent" | cut -d" " -f1)"
for sessdir in $USER_FAKE_HOME/.nx/C-*
do
[ "$sessdir" == "$USER_FAKE_HOME/.nx/C-$sess_id" ] && continue
NODE_AGENT_PID=$(cat "$sessdir/pids/agent" 2>/dev/null)
[ -z "$NODE_AGENT_PID" ] && continue
[ -z "$(echo "$AGENT_PIDS" | grep $NODE_AGENT_PID)" ] && continue
if [ "$digarg" = "1" ]; then
curport="$(cat $sessdir/scripts/mport 2>/dev/null)"
[ "$curport" = "$1" ] && { echo "$sessdir"; nxlog "$FUNCNAME: found sessdir $sessdir for mport = $1"; return; }
else
[ -f "$sessdir/scripts/$1" ] && { echo "$sessdir"; nxlog "$FUNCNAME: found sessdir $sessdir for filename = $1"; return; }
fi
done
nxlog "$FUNCNAME: target sessdir not found"
}