如何在启动时启动VNC服务器?

如何创建系统范围的自动启动文件? 这将在运行桌面版Maverick的云服务器上。

我以root身份登录并使用System/Preferences/StartupApplications /root/.config/autostart创建了一个自动启动文件,但它最终在/root/.config/autostart并且在重新启动时没有执行(据我所知)。 自动启动文件用于调用调用VNC服务器的bash脚本。

我将.desktop自动启动文件从/root/.config/autostart复制到/etc/xdg/autostart并重新启动。 这似乎没有什么区别。

编辑如评论中所述,目标是运行我的bash脚本,在启动时启动VNC服务器; 不登录

  1. 首先,安装TightVNC服务器sudo apt-get install tightvncserver

  2. 为您要登录的用户设置VNC服务器。 当您第一次运行“vncserver”时,它会要求您设置密码。 仅允许SSH隧道连接或VPN连接。 要在VNC会话启动时启动程序或会话,请修改~/.vnc/xstartup 。 这是一个例子。

     #!/bin/sh xrdb $HOME/.Xresources xsetroot -solid black /opt/azureus/azureus & k3b & icewm-session & 
  3. 将以下内容复制到/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="x" #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 
  4. 使用sudo chmod +x /etc/init.d/vncserver使脚本可执行。

  5. 最后,使用端口590X上的VNC客户端连接到您的服务器,其中X是vncserver脚本中“DISPLAY”的值。 在OS X上,我喜欢使用VNC的Chicken。 在Windows和Linux上,TightVNC客户端运行良好。

资源

一种可能性:/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身份执行。

只要你不改变运行级别,这对你的目的是好的,我想。 (如果你不知道什么是运行级别,请不要担心)。

如果您正在使用TigerVNC,那么它将安装/etc/init.d/vncserver ,它启动在/etc/sysconfig/vncservers配置的所有vncservers。例如,以下将在启动时在显示器1和2上启动2个实例。

 # : VNCSERVERS="1:root" VNCSERVERARGS[1]="-geometry 1920x1080" VNCSERVERS="2:guest" VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None" 

这似乎是一个老post,但对于一些用户来说这个主题可能仍然很有趣。 要让vnc在启动时启动,您需要

  1. 安装vnc服务器软件(这里我们将使用x11vnc)
  2. 配置启动脚本(用于启动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社区维基页面上找到详细信息(请参阅此处 ),或者您可以尝试使用此快速使用收件人

  • 对于低于15.04的 Ubuntu版本,请查看此post
  • 对于Ubuntu 15.04或更高版本 ,请查看此post

希望这有用

将以下行添加到crontab文件。 这意味着在非常重启期间执行关键字@reboot之后的命令。

 @reboot /usr/bin/vncserver :1 

要打开crontab文件,需要使用命令crontab -e

你可以在启动时让cron启动你的东西。 只需使用字符串“@reboot”代替通常用于指定事物何时运行的数字。

例如,这是我如何在一台机器上启动Dropbox,否则它不会自动启动:

 # mh 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