树莓派开机自动启动vncserver

linux启动时在init进程的最后会执行/etc/rc.local中的脚本,所以将启动命令添加至其中即可.

于是我在文件末尾 exit 0 之前添加了以下一行

/usr/bin/tightvncserver :1 

可是不见执行.解决方法如下,一共添加3行:

export HOME="/root"
export USER="root"
/usr/bin/tightvncserver :1
前面两行是程序所依赖的环境变量.这样一来,便以root身份创建了一个vncserver.



下面是博主的惨痛经历,觉得罗嗦就跳过吧!

由于对linux的不熟悉,我花了一整天才把vncserver塞到启动项里.

一开始根据百度到的方法,我只添了一行到rc.local里,死活不见启动,以为启动时并未执行这一脚本,便尝试将其放在其他地方.其中添加到/etc/profile中成功启动,可是cpu持续满载,ps x一查看,发现竟启动了25个vncserver!!不卡才怪!

后来在网上看到这个方法:使用 '>' 符号将输出信息重定向,于是把那一行改为:

/usr/bin/tightvncserver :1 > /tmp/temp.log 2>&1
reboot,进入temp.log查看,输出信息为:

no USER environment variable.

这说明rc.local里的脚本的确执行了,并且vncserver是因为缺少USER这个环境变量才无法启动.于是我在前面加了一行:

export USER="pi"
reboot,cat /tmp/temp.log,输出信息为:

you need a password to access the desktop

password:

明明设过密码的.根据前面的经验我又添加了其他环境变量进去,甚至一股脑地把export命令输出的环境变量全copy进去,结果都是这个错误:

wrong access or mode to entry /home/pi/.vnc.

已经很接近了为什么成功不了呢?

然后一次偶然执行top命令时我注意到init进程的user是root.于是我抱着试一试的心态把rc.local里user相关的环境变量都改成root.

reboot, cat /tmp/temp.log,输出信息为:


New 'X' desktop is raspberrypi:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/raspberrypi:1.log


大功告成!!

这酸爽!!

也算不了什么大功,可是着实死磕了我一整天呢.


你可能感兴趣的:(Linux笔记)