Как создать общесистемный файл автозапуска? Это будет на облачном сервере, на котором установлена настольная версия Maverick.
Я вошел в систему как пользователь root и создал файл автозапуска с помощью System/Preferences/StartupApplications, но он оказался в /root/.config/autostart и не выполнил (как далеко как я могу сказать) при перезагрузке. Файл автозапуска должен вызывать скрипт bash, который вызывает сервер VNC.
Я скопировал файл автозапуска .desktop с /root/.config/autostart до /etc/xdg/autostart и перезагрузился.
Edit Как упоминалось в комментарии, целью является запуск моего сценария bash, который запускает сервер VNC при загрузке; а не при входе в систему.
#!/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. Обязательно измените переменную USER на любого пользователя, с которым вы хотите управлять сервером 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. Наконец, подключитесь к вашему серверу с клиентом VNC на порту 590X, где X - значение «DISPLAY» в сценарии vncserver. На OS X мне нравится использовать Chicken of VNC. В Windows и Linux клиент TightVNC работает хорошо. Источник
#!/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. Обязательно измените переменную USER на любого пользователя, с которым вы хотите управлять сервером 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. Наконец, подключитесь к вашему серверу с клиентом VNC на порту 590X, где X - значение «DISPLAY» в сценарии vncserver. На OS X мне нравится использовать Chicken of VNC. В Windows и Linux клиент TightVNC работает хорошо. Источник
это, кажется, старое сообщение, но тема может быть интересной для некоторых пользователей. Чтобы запустить 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, и вам нужно будет создать свой файл служебной единицы в разделе /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 Community wiki (см. здесь), или вы можете попробуйте использовать этот быстрый способ использовать recice
Для версии Ubuntu ниже 15.04, проверьте это сообщение для U buntu версии 15.04 или новее, проверьте это сообщениеНадеюсь, это полезно
Если вы используете TigerVNC, тогда он устанавливает /etc/init.d/vncserver, который запускает все vncservers, настроенные в /etc/sysconfig/vncservers, например. следующий запустил бы 2 экземпляра на дисплее 1 & amp; 2 при запуске.
# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"
VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"
Во время загрузки вы можете запустить cron для вас. Просто используйте строку «@reboot» вместо чисел, которые вы обычно используете, чтобы указать, когда вещь должна работать.
Например, вот как я запускаю Dropbox на машине, на которой он не работает автоматический запуск:
# m h dom mon dow command
@reboot /usr/bin/dropbox start
'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
Одна возможность: /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.
Это нормально для вашей цели, пока вы это делаете не меняйте уровни запуска, я думаю. (Если вы не знаете, какие уровни выполнения, неважно).
это, кажется, старое сообщение, но тема может быть интересной для некоторых пользователей. Чтобы запустить 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, и вам нужно будет создать свой файл служебной единицы в разделе /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 Community wiki (см. здесь), или вы можете попробуйте использовать этот быстрый способ использовать recice
Для версии Ubuntu ниже 15.04, проверьте это сообщение для U buntu версии 15.04 или новее, проверьте это сообщениеНадеюсь, это полезно
Если вы используете TigerVNC, тогда он устанавливает /etc/init.d/vncserver, который запускает все vncservers, настроенные в /etc/sysconfig/vncservers, например. следующий запустил бы 2 экземпляра на дисплее 1 & amp; 2 при запуске.
# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"
VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"
Во время загрузки вы можете запустить cron для вас. Просто используйте строку «@reboot» вместо чисел, которые вы обычно используете, чтобы указать, когда вещь должна работать.
Например, вот как я запускаю Dropbox на машине, на которой он не работает автоматический запуск:
# m h dom mon dow command
@reboot /usr/bin/dropbox start
'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
Одна возможность: /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.
Это нормально для вашей цели, пока вы это делаете не меняйте уровни запуска, я думаю. (Если вы не знаете, какие уровни выполнения, неважно).
это похоже на старую должность, но тема может быть интересной для некоторых пользователей. Чтобы запустить 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 Community» (см. здесь ), или вы можете попытаться использовать эту функцию для быстрого использования получателя
Надеюсь, что это полезно