09.01.2015 22:35
OlegON
 
Проблема следующего рода. Мессенджеры традиционно закрываются по каким-то своим внутренним проблемам. Соответственно, мой pidgin закрылся после того, как я несколько недель не перезагружался. Самое простое - в периодическом кроне проверять, запущен он или нет, а если не запущен, то запускать из под моего пользователя и в моем Х.

Код:
#! /bin/bash
testcmd=`ps -Af | grep -o -w 'pidgin$' | grep -v grep | grep -v check_pidgin`

if [ -z "$testcmd" ] ; then
eval $(tr '\0' '\n' < /proc/$(pgrep awesome)/environ | sed -nr '/^(DISPLAY|XAUTHORITY)=/p' | sed -e 's/^/export /' )
sudo -u user /usr/bin/dbus-launch /usr/bin/pidgin &>/dev/null &
fi
09.01.2015 22:38
OlegON
 
расшифрую:
я работаю в awesome, т.е. строка с eval вычисляет DISPLAY, в котором работает awesome.
первая строка заносит в переменную результат поиска процесса pidgin, вторая - проверяет его.
запускаю через sudo, поскольку отдельную крон-задачу лепить не хотелось, а основная работает из под рута.
чтобы нормально работали уведомления в pidgin, запускаю его через dbus-launch.
Часовой пояс GMT +3, время: 21:17.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.