如何在 Ubuntu 10.04 中启动时启动 VNC 服务器

mmm*_*mmm 5 startup scripting ubuntu

我一直在努力解决这个问题,以至于问了另一个启动脚本问题。

我有一个相对简单的启动脚本,即:

### BEGIN INIT INFO
# Provides:          startVNC
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      
# Short-Description: Start VNC server at boot time
# Description:       Test
### END INIT INFO

#!/bin/sh
echo "JOB RUN AT $(date)"
echo "============================"
echo ""
/usr/bin/vncserver -geometry 1280x1024 -depth 24
Run Code Online (Sandbox Code Playgroud)

显然,只有最后一行才是真正重要的。该脚本是可执行的,即。

ls -l startVNC
Run Code Online (Sandbox Code Playgroud)

产量:

-rwxr-xr-x 1 root root 406 2011-12-07 15:45 startVNC
Run Code Online (Sandbox Code Playgroud)

当我在my_uservncserver 启动时通过 ssh 登录时执行它时,我可以从我的桌面看到 GUI。然后我尝试了 5 件事让它在启动时运行:

  1. 将我的脚本复制到/etc/init.d/, 调用update-rc.d -f startVNC defaults(也使用99afterdefaults以确保vncserver依赖的一切都已经在运行)。我检查了/etc/rcX.d/文件夹中所有生成的符号链接。但它在重新启动或启动时不起作用
  2. 将我的脚本添加到/etc/rc.local之前exit 0
  3. 添加到crontab -e作为@reboot /home/my_user/scripts/startVNC
  4. 将我的脚本添加到 /etc/init.d/rcS
  5. 将我的脚本添加到 System -> Preferences -> Startup Applications in Gnome

但他们都没有工作。我还能检查什么。我的脚本可能有错误吗?我想进程的所有者必须是my_user它才能工作,但我不知道如何调试它。

任何线索表示赞赏。

toh*_*ohu 6

您可以使用su[YourUserName]-c /usr/bin/vncserver以用户身份而不是 root 身份运行 vncserver。

另一点:在您的脚本中,启动和停止 VNC 服务器之间没有区别。通常,init 脚本会使用不同的情况来启动/停止服务:

case "$1" in
    start)
    # code to start the application
    ;;

    stop)
    # code to stop the application
    ;;

    restart)
    $0 stop
    $0 start
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

下面是一个详细的示例,说明如何使用 init 脚本启动 vnc 服务器。