Хочу написать небольшую заметку про вашего мальчика некоторую коррекцию работы дисплей менеджера 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