Я пытаюсь запустить x11vnc при запуске openSuse, но не очень успешно. Вот что я сделал на данный момент.
Я отредактировал /etc/X11/xdm/Xsetup
и добавил следующие строки в конец, прямо перед exit 0
:
#run x11vnc automatically
/usr/bin/x11vnc -rfbauth /usr/bin/vnc/passwd -o /var/log/x11vnc.log -forever -bg
Я создал файл `/usr/bin/vnc/passwd с помощью:
sudo x11vnc -storepasswd /usr/bin/vnc/passwd
Когда я перезагружаюсь, я делаю ps -A | grep x11
и не вижу запущенного процесса. Я также не вижу /var/log/x11vnc.log
созданного файла. Я могу запустить команду из каталога bash, и она отлично работает. У меня такое чувство, что этот скрипт никогда не запускается при запуске.
Я также создал новый файл с именем /etc/kde4/kdm/Xsetup
и поместил туда две строки, указанные выше, и получил то же самое поведение.
Разрешения файла следующие:
-rw------- 1 root root 8 Apr 26 22:26 /usr/bin/vnc/passwd
-rwxr-xr-x 1 root root 5691 Apr 26 22:01 /etc/X11/xdm/Xsetup
Есть идеи?
ОБНОВЛЯТЬ
Я даже пробовал просто повторятьПривет, мирв текстовый файл, в Xsetup
котором тоже ничего не делает. Похоже, этот скрипт просто не запускается при загрузке.
ОБНОВЛЕНИЕ 2:
Я обновился до 12.1, однако ни одна из моих попыток не увенчалась успехом.
решение1
Вот что мне удалось найти, оба варианта должны подойти:
Чтобы исправить x11vnc:
Введите эти команды в консоли как user
:
mkdir ~/.vnc
x11vnc -storepasswd "password" ~/.vnc/passwd
Вставьте это в файл ~/.x11vncrc, заменив user
на свое имя пользователя:
display :0
rfbauth /home/user/.vnc/passwd
forever
bg
Теперь для автоматического запуска при каждом user
входе в систему:
ln -s /usr/bin/x11vnc ~/.kde/Autostart/x11vnc
Теперь перезагрузите или перезапустите сеанс рабочего стола.
(источник)
ЯСТ:
На рабочем столе KDE выберите значок YaST, введите пароль root и нажмите OK; затем выберитеСетевые службы > Удаленное администрирование.
Выберите «Разрешить удаленное администрирование», затем выберите «Готово».
(источник)
решение2
Вернитесь /etc/X11/xdm/Xsetup
к исходному состоянию (удалите свои правки). Это не вызывается во время загрузки системы.
Добавьте строку запуска /usr/bin/x11vnc -rfbauth /usr/bin/vnc/passwd -o /var/log/x11vnc.log -forever -bg
в файл /etc/init.d/after.local
.
Если вы не хотите написать совместимый файл init script
, который запускает/останавливает/перезапускает x11vnc
процесс (что возможно, но выходит за рамки этого ответа), вам следует поместить все процессы, которые вы хотите выполнить при загрузке, в /etc/init.d/after.local
.
Примечание: в системах RedHat это будет помещено в rc.local
. SUSE использует before.local
(выполнить перед сценариями инициализации) и after.local
(выполнить после сценариев инициализации).
решение3
У меня нет установленной версии SuSE 11, чтобы проверить.
Утер на правильном пути, но вам нужно запустить программу ПОСЛЕ запуска X11.
Я не знаю наверняка, МОЖЕТ ли он работать, если запущен только X. Хотели бы вы, чтобы он запускался, если, например, «гость» вошел в систему через экран входа в X-Window?
В версии 12 SuSE изменяет все скрипты запуска, поэтому вы можете просто обновиться, а затем исправить это в версии 12:
http://news.opensuse.org/2011/12/22/systemd-%E2%80%93-boot-faster-and-cleaner-with-opensuse-12-1/
В качестве общей цели вам следует выяснить, что на самом деле работает в качестве вашего «экрана входа» в X (вероятно, gdm -http://projects.gnome.org/gdm/) и как это запустилось. Где бы это ни запускалось, вам нужно запустить x11vnc либо непосредственно перед этим, либо непосредственно после него.