Исправление остановки Display Manager Slim в Gentoo Linux

Хочу написать небольшую заметку про вашего мальчика некоторую коррекцию работы дисплей менеджера Slim связанную с невозможностью его остановки и старта в Gentoo Linux посредством init — скрипта xdm.

Проблема заключается в том, что невозможно остановить или перезапустить запущенный Slim так как для его остановки и перезапуска требуется наличие pid файла процесса которого не существует. В Gentoo, любой Display Manager(KDM,GDM…etc) запускается через скрипт xdm, в котором в свою очередь описаны параметры их запуска. В этом скрипте не упоминается о Slim и поэтому используются общие параметры запуска:

*)
         # first find out if there is such executable
         EXE="$(which ${MY_XDM} 2>/dev/null)"
         PIDFILE="/var/run/${MY_XDM}.pid"

Возможно для каких либо других дисплей менеджеров эти общие настройки и подходят, но при запуске Slim не создается pid файл в

PIDFILE="/var/run/${MY_XDM}.pid"

поэтому его, и соответственно X-Server перезапустить не удается. Для того чтобы исправить это откроем инит скрипт xdm:

sudo nano -w /etc/init.d/xdm

Найдем в нем строки параметров запуска различных DM и создадим для DM Slim отдельные параметры запуска (Какой именно DM нужно запускать берется из /etc/conf.d/xdm)

                gdm|gnome)
                        EXE=/usr/bin/gdm
                        [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary
                        PIDFILE=/var/run/gdm.pid
                        ;;
                slim)
                        EXE="/usr/bin/slim"
                        PIDFILE=/var/run/slim.lock
                        ;;

Если все сделано правильно, то при остановке/запуске Slim должен перезапуститься X-server и если не настроен автологин — показать экран входа в систему.
Но есть более красивый и элегантный способ решить обсуждаемую проблему при использовании которого не надо дополнять инит скрипт. Нужно открыть конфигурационный файл slim

sudo nano -w /etc/slim.conf

и исправить имя создаваемого при старте lockfile с slim.lock на slim.pid

lockfile                /var/run/slim.lock
logfile                 /tmp/slim.log

Оцените статью