Как мне это видится в debian/devuan на sysv:
Предполагается что пользователь не должен хотеть другой *dm, кроме того, который у него уже установлен.
Теоретически с других *dm можно снять бит execute, но это тот ещё грандиозный костыль. И под этот костыль нужен парсер-селектор, который тоже сам по себе костыль. ИМХО.
Зря значит обрадовался...
Угу. Там туеву хучу пакетов с init-скриптами переделывать, - работает эта кухня так:
Дефолтный display-manager задаётся в файле
# cat /etc/X11/default-display-manager
/usr/bin/slim
Переменная DAEMON задаётся в init-файле display-manager -а
# grep DAEMON /etc/init.d/slim | grep -v 'test\|then'
DAEMON=/usr/bin/slim
SSD_START_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --startas $DAEMON -- -d"
SSD_STOP_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --retry TERM/5/TERM/5"
Для старта display-manager, содержимое файла и переменной должно быть идентичным
# grep DAEMON /etc/init.d/slim | grep -v 'test\|SSD\|^DAEMON'
[ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" != "$DAEMON" ]; then
При этом стартующий display-manager, это не содержимое пакета
# dpkg --help | grep '\-S'
-S|--search <pattern> ... Find package(s) owning file(s).
# dpkg -S /etc/X11/default-display-manager
dpkg-query: no path found matching pattern /etc/X11/default-display-manager
Если /etc/X11/default-display-manager и $DAEMON (задано в *dm init-файле), проверкой в инит-скрипте менеджера не совпадают, следует отказ старта display-manager.
Что пересылает в /etc/X11/default-display-manager, хрен его знает...