LINUX.ORG.RU

Как на bash запомнить число заходов?


0

1

Я хочу сделать так, чтобы когда я захожу под определённым именем из-под Putty, то стартовал vncserver. Повторные заходы под тем же именем не должны иметь никакого эффекта, выходы тоже, кроме последнего, который должен вызывать завершение сервера.

Единственная мысль, которая мне приходит в голову — класть число в какой-нибудь файл и инкрементить его в .bash_profile и декрементить в .bash_logout, при этом следить за событиями 0->1 и 1->0, запуская или останавливая при этом сервер.

Но возникают вопросы:

1) есть ли более элегантные решения?

2) вызовется ли .bash_logout если сеанс прервётся аварийно?

именем из-под Putty, то стартовал vncserver

как-то [ «$TERM» = «putty» ] && ! pidof vncserver && vncserver

в .bash_profile этого пользователя

выходы тоже, кроме последнего, который должен вызывать завершение сервера.

[ $(who | grep 'dims\s\+pts' | wc -l) -eq 1 ] && pkill vncserver

в .bash_logout

Может быть и -eq 0, проверять надо. Еще там можно посмотреть, что логин не локальный, если надо, тем же грепом, смотри выхлоп who.

2) вызовется ли .bash_logout если сеанс прервётся аварийно?

Проверь, если нет, запусти при логине скрипт, который будет ловить выход.

Может есть еще более элегантные решения, не знаю.

vga ★★
()

где-то рядом с этим, если правильно понял задачу:

if [ `w -sh | grep -P ^$USER'\s' | wc -l` -gt 1 ]; then
    # хм, а мы здесь не одни…
else
    # эх, здесь так темно и одиноко…
fi
arsi ★★★★★
()

>захожу под определённым именем из-под Putty

Быдловиндузятник детектед

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.