Как мне создать общесистемный файл автозапуска? Это будет происходить на облачном сервере, на котором работает настольная версия Maverick.
Я вошел в систему как root и создал файл автозапуска с помощью System/Preferences/StartupApplications но все закончилось тем, что в /root/.config/autostart и не выполнялся (насколько я могу судить) при перезагрузке. Файл автозапуска предназначен для вызова сценария bash, который вызывает сервер VNC.
Я скопировал файл автозапуска .desktop из /root/.config/autostart к /etc/xdg/autostart и перезагрузился. Казалось, это ничего не меняло.
Редактировать Как упоминалось в комментарии, цель состоит в том, чтобы запустить мой скрипт bash, который запускает сервер VNC при загрузке, а не при входе в систему.
Сначала установите сервер TightVNC sudo apt-get install tightvncserver.
Настройте сервер VNC для пользователя, от имени которого вы хотите войти в систему. Когда вы запустите "vncserver" в первый раз, он попросит вас установить пароль. разрешайте только туннелированные SSH-соединения или VPN-соединения. Чтобы запускать программы или сеанс при запуске сеанса VNC, измените ~/.vnc/xstartup. Вот пример.
Скопируйте следующее в /etc/init.d/vncserver. Самый простой способ сделать это - скопировать его в буфер обмена, запустить sudo -i && cat > /etc/init.d/vncserver && exit в терминале вставьте его и введите CTRL-D. Обязательно измените переменную USER на любого пользователя, под которым вы хотите, чтобы сервер VNC запускался.
#!/bin/sh -e### BEGIN INIT INFO# Provides: vncserver# Required-Start: networking# Default-Start: 3 4 5# Default-Stop: 0 6### END INIT INFOPATH="$PATH:/usr/X11R6/bin/"# The Username:Group that will run VNCexport USER="mythtv"#${RUNAS}# The display that VNC will useDISPLAY="1"# Color depth (between 8 and 32)DEPTH="16"# The Desktop geometry to use.#GEOMETRY="<WIDTH>x<HEIGHT>"#GEOMETRY="800x600"GEOMETRY="1024x768"#GEOMETRY="1280x1024"# The name that the VNC Desktop will have.NAME="my-vnc-server"OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}". /lib/lsb/init-functionscase "$1" instart)log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver ${OPTIONS}";;stop)log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}";;restart)$0 stop$0 start;;esacexit 0
Сделайте скрипт исполняемым с помощью sudo chmod +x /etc/init.d/vncserver.
Наконец, подключитесь к своему серверу с помощью VNC-клиента на порту 590X, где X - значение "DISPLAY" в скрипте vncserver. В OS X мне нравится использовать Chicken из VNC. В Windows и Linux клиент TightVNC работает хорошо.
# This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.## In order to enable or disable this script just change the execution# bits. ## By default this script does nothing
Биты выполнения в моей системе уже установлены на 755. (chmod 755 /etc/rc.local)
Вы можете поместить туда любую команду, которая будет выполняться от имени root.
Я думаю, это нормально для вашей цели, если вы не меняете уровни выполнения. (Если вы не знаете, что такое уровни выполнения, неважно).
кажется, это старый пост, но тема все еще может быть интересна некоторым пользователям. Чтобы vnc запускался при загрузке, вам нужно будет
установите программное обеспечение сервера vnc (здесь мы будем использовать x11vnc)
настройка сценария запуска (используется для запуска службы vnc)
Шаг 1 - установите сервер x11vnc
в командной строке введите
sudo apt-get install x11vnc
Чтобы повысить безопасность, вы должны установить pwd
sudo x11vnc -storepasswd
Шаг 2 - Настройте свой сценарий запуска
если ваша версия ubuntu ниже 15.04,
вы создаете конфигурационный файл в разделе /etc/init.d/x11vnc.conf и заполните его правильными командами, которые должны быть выполнены
start on login-session-start script /usr/bin/x11vnc -xkb -auth/var/run/lightdm/root/:0-noxrecord -noxfixes -noxdamage -rfbauth /etc/x11vnc.pass -forever -bg -rfbport 5900 -o /var/log/x11vnc.log end script
если ваша версия ubuntu 15.04 или более поздняя,
эти системы используют systemd, и вам нужно будет создать свой файл service unit в разделе /lib/systemd/system/x11vnc.service и заполните его правильными командами, которые должны быть выполнены
Вы можете найти подробную информацию на вики-странице Help Ubuntu Community (см. здесь) или вы можете попробовать использовать этот быстрый в использовании рецепт.
Если вы используете TigerVNC, то он устанавливается /etc/init.d/vncserver который запускает все серверы vnc, настроенные в /etc/sysconfig/vncserversНапример, следующее приведет к запуску 2 экземпляров на дисплее 1 и 2 при запуске.
'sudo update-rc.d vncserver defaults' сообщил, что отсутствует; "Требуется-Stop:" (даже пустой). Поэтому я добавил его, как показано ниже. И больше никаких предупреждений.
#!/bin/sh -e ### BEGIN INIT INFO # Provides: vncserver # Required-Start: networking # Required-Stop: # Default-Start: 3 4 5 # Default-Stop: 0 6 ### END INIT INFO
Вы можете запустить cron для вас во время загрузки. Просто используйте строку "@reboot" вместо чисел, которые вы обычно используете, чтобы указать, когда программа должна запуститься.
Например, вот как я запускаю Dropbox на компьютере, на котором в противном случае он не запускается автоматически:
# m h dom mon dow command@reboot /usr/bin/dropbox start