пятница, 14 сентября 2007 г.

автозагрузка приложений или о пользе детского сада

самые простые вопросы - самые сложные... наверно да, посему и возникла мыслишка построить тут некую "песочницу" для "ниасиливших ямба с хореем"...

вопрос первый - где в ентом линуксе папочка, куды ярлычки на автозагрузку накидать можна, ась? и начинается дурдом. умники на форумах спрашивают какой WM/DE, чего-то там бубнят про сессии и ещё чёрт поймёт про что. а решение-то лежит на поверхности. и по старой доброй *nix традиции способов сих (приёмов и ухваток) множество (не стесняйтесь дополнить в комментариях чего упущено):

1. вопрос пусть и некритичный, но "влияющий на количество опций" - нужны ли нам иксы. если нет - то наилучшим местом для автозагрузки "глобально" будет модификация /etc/profile или ~/.profile для каждого пользователя.

2. если пользуем иксы - можем поиграть с Xsession (~/.xsession + ~/.xinitrc), создав скриптики с привязкой автозапуска к используемому WM/DE (не наш метод, но он вполне оправдан во многих жизненных ситуациях).

вопросами размера окон этих приложений, расположением на виртуальных столах и прочими "оконными" параметрами должен управлять WM. вот например шотик с "джентельменским набором" от Enlightenment-а:

то бишь настроил разок, запомнил и все дела. теперь можем спокойненько дописать в конец ~/.profile что-то похожее на:

if [ "`ps aux | grep mpd | grep -v grep`" = "" ]
then mpd &
fi

if [ "`ps aux | grep X | grep -v grep`" = "" ]

then exit
fi

if [ "`ps aux | grep stardict | grep -v grep`" = "" ]
then stardict &
fi

сперва мы проверяем, запущен ли демон mpd, если нет - запускаем его в "фоновом" режиме. потом - очень грубо смотрим на наш икс-сервер (есть ли возможность запускать приложения с GUI), если иксов нет - выходим не прощаясь, ежели что-то есть - пытаемся запустить stardict. в этом же духе можно продолжать пока не иссякнет фантазия.

2 комментария:

Анонимный комментирует...

хорошо... а как, например мне панельку автостартануть с е16?

sda комментирует...

точно так же как и всё остальное :). а можно и средствами Е16-го - обратите внимание на пунктик "Restart application on login" - если выберете 16-ый, то все приложения, которые "запомнили" приказ стартануть, запустятся сами.