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_user
vncserver 启动时通过 ssh 登录时执行它时,我可以从我的桌面看到 GUI。然后我尝试了 5 件事让它在启动时运行:
/etc/init.d/
, 调用update-rc.d -f startVNC defaults
(也使用99
afterdefaults
以确保vncserver
依赖的一切都已经在运行)。我检查了/etc/rcX.d/
文件夹中所有生成的符号链接。但它在重新启动或启动时不起作用/etc/rc.local
之前exit 0
crontab -e
作为@reboot /home/my_user/scripts/startVNC
/etc/init.d/rcS
但他们都没有工作。我还能检查什么。我的脚本可能有错误吗?我想进程的所有者必须是my_user
它才能工作,但我不知道如何调试它。
任何线索表示赞赏。
您可以使用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 服务器。