Простой новомодный сценарий:
запустите на запуске
должностное лицо/usr/bin/vncserver
икра более чем 15 экземпляров процесса Xvnc.
Мягкий: tigervncserver на Ubuntu 16.04
Если я запускаю его от оболочки как $/usr/bin/vncserver, это работает обычное и поднимает только один сервер.
Каждый раз vncserver запускает отовсюду dmesg выставочное сообщение:
[ 1694.544180] show_signal_msg: 42 callbacks suppressed
[ 1694.544183] gnome-screensav[3732]: segfault at 0 ip (null) sp 00007ffd6f4700d8 error 14 in gnome-screensaver[400000+20000]
но хорошо работает после этого.
Когда выскочка, выполняющая этот сценарий I, видит в сообщениях dmesg 13 о screensav и сообщении:
[ 2040.250475] traps: gnome-session-b[12217] trap int3 ip:7fdbc39eba6b sp:7fff55f95e20 error:0
некоторое переполнение я предполагаю... затем, что оно останавливается для порождения серверов.
Таким образом, как предотвратить выскочку для перезапуска сценария, даже если он заканчивается к системной ошибке? Как автоматически запустить vncserver после входа в систему иначе затем выскочка (или systemd) или Приложения Запуска Ubuntu, чтобы быть уверенным, что он выполняется только в один раз? Как зафиксировать ту ошибку (если кто-то знает это)?
Ответ для основного вопроса:
Этот простой сценарий работает на запуске сессии затем, он запускает vnc сервер, который запускает новую сессию, и на этой сессии выскочка запускает этот сценарий снова. Столько экземпляров Xvnc называют рекурсивно. Я сделал некоторые дополнения к сценарию:
start on startup
script
if [ -z "$(ps -e | grep Xvnc)" ]; then
/usr/bin/vncserver
fi
end script
теперь это хорошо работает и поднимает только одну сессию.
segfault ошибка все еще существует, но основная проблема решена.