Как создать общесистемный файл автозапуска? Это будет на облачном сервере с настольной версией 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
. Вот пример.
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid black
/opt/azureus/azureus &
k3b &
icewm-session &
Скопируйте следующее в /etc/init.d/vncserver
. Самый легкий способ сделать это состоит в том, чтобы скопировать его в Ваш буфер обмена, работать sudo -i && cat > /etc/init.d/vncserver && exit
в терминале вставьте его в и введите CTRL-D. Обязательно измените Пользовательскую переменную на любого пользователя, под которым Вы хотите, чтобы сервер VNC работал.
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Default-Start: 3 4 5
# Default-Stop: 0 6
### END INIT INFO
PATH="$PATH:/usr/X11R6/bin/"
# The Username:Group that will run VNC
export USER="mythtv"
#${RUNAS}
# The display that VNC will use
DISPLAY="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-functions
case "$1" in
start)
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
;;
esac
exit 0
Сделайте исполняемый файл сценария с sudo chmod +x /etc/init.d/vncserver
.
Одна возможность: /etc/rc.local
Содержимое говорит это:
# 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.
Это нормально для твоих целей, пока ты не меняешь уровни запуска, я полагаю. (Если вы не знаете, что такое уровни выполнения, не берите в голову).
'sudo update-rc.d vncserver defaults' сообщило, что отсутствует; «Требуется-Стоп:» (даже пусто). Поэтому я добавил это, как показано ниже. И больше никаких предупреждений.
#!/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
Добавьте строку ниже в файл crontab. Это означает, что команда после ключевого слова @reboot
выполняется во время самой перезагрузки.
@reboot /usr/bin/vncserver :1
Чтобы открыть файл crontab, нужно использовать команду crontab -e
При использовании TigerVNC затем, он устанавливает /etc/init.d/vncserver
который запускает весь vncservers, настроенный в /etc/sysconfig/vncservers
Например, следующее запустило бы 2 экземпляра, демонстрирующиеся 1 и 2 при запуске.
# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"
VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"
это, кажется, старое сообщение, но тема могла бы быть все еще интересной для некоторых пользователей. Чтобы иметь vnc для запуска в загружаются, Вы должны будете
Шаг 1 - устанавливает x11vnc сервер
из командной строки ввести
sudo apt-get install x11vnc
Для добавления безопасности необходимо установить pwd
sudo x11vnc -storepasswd
Шаг 2 - Настраивает Ваш сценарий запуска
Вы создаете файл конфигурации под /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
эти системы используют systemd, и необходимо будет создать сервисный файл единицы под /lib/systemd/system/x11vnc.service
и заполните его с корректными командами, которые будут выполняться
[Unit] Description=Start x11vnc at startup. After=multi-user.target
[Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever
-loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared
[Install] WantedBy=multi-user.target
Перезагрузите сервис
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
Можно найти подробную информацию о Справке Сообществом Ubuntu страница Wiki (см. здесь), или можно попытаться использовать это быстрое для использования recipice
Надежда это полезно
Во время загрузки вы можете выбрать для себя запуск cron. Просто используйте строку "@reboot" вместо чисел, которые вы обычно используете, чтобы указать, когда вещь должна работать.
Например, вот как я запускаю Dropbox на машине, на которой он не запускается автоматически:
# m h dom mon dow command
@reboot /usr/bin/dropbox start