深度系统操作实践
一、 开机关闭图形界面,直接进入命令行模式
# 关闭 lightdm启动器 sudo systemctl disable lightdm # 重启即可看到效果 sudo shutdown -r now # 设置开机默认进入图形界面 sudo systemctl enable lightd
二、Deepin实现开机脚本自启
实现用户自定义脚本开启自动主要有如下方法:
1、修改.profile文件。
将要开机需要自动执行的命令直接写进.profile文件中,其原理是用户登录系统后自动执行该脚本(也就是登录后触发)。该方法有如下缺点:
①、如果脚本有报错或输出警告信息,那么登录系统后会出现黑屏弹框,严重影响开机体验。
②、不能在~/.profile文件中使用sleep命令。如果在.profile文件中使用sleep 5,那么当开机登录系统后会黑屏5s之后才进入桌面。
③、如果执行该脚本的用户为普通用户而不是root用户,那就意味着当你的命令含有sudo前缀时,需要采用hack方式去执行该条命令,如
#输出用户密码并作为下一条命令的输入 echo "your password" | sudo -S some command
2、新建/etc/rc.local文件。
该方法的原理是系统开机后会自动启动rc-local服务,rc-local服务启动后就会自动执行/etc目录下的rc.local脚本。该方法不存在第一种方法的缺点,脚本执行失败不会出现黑屏弹窗、sleep不会造成开机黑屏以及执行脚本的用户是root用户。
主要步骤:
①、新建/etc/rc.local文件。
②、粘贴一下模板
#!/bin/sh -e # # 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. exit 0
③、在"exit 0"上方插入需要自动的命令(一行一个)后保存文件。
④、给脚本增加755权限
sudo chmod +755 /etc/rc.local
⑤、调试脚本(可选)
# 使用 sudo 模拟 root 用户开机自启 /etc/rc.local 文件
sudo /etc/rc.local
如果第⑤步模拟启动脚本没有报错,就可以直接重启系统看是否可以成功实现脚本开机自启。重启进入系统后我们可以通过systemctl status rc-local.service查看rc.local的运行状态,如果结果显示active(exited)则说明脚本已经成功执行,反之如果结果显示failed,需要重新检查脚本哪出现问题。
可能引起脚本无法正常启动的原因:
- 执行脚本的用户不一致
由于rc.local开机自启的时候是以root用户执行的,而在具体应用中可能存在本命令需要在普通用户执行的情况。
假设用户lolimay在终端用“VBoxHeadless -s aikuai &”后台启动了虚拟机aikuai,那么我们在rc.local文件应该使用下面格式:
# 以 lolimay 用户执行该命令 su - lolimay -c "VBoxHeadless -s aikuai &"
- 多余的sudo
rc.local 开机时是以 root 用户启动的,所以写在 rc.local 文件中命令不需要带有 sudo 前缀(实际上就算带有了 sudo 前缀也不会产生错误)。
调试建议:
在编写过程中时常使用"sudo /etc/rc.local"命令模拟是否能够执行成功。
3、将desktop文件拖进.config/autostart文件夹下实现开机自启。
在~/.config/autostart文件夹下新建.desktop文件。~/.config/autostart文件夹类似于Windows下的启动文件夹,系统开机时会执行该文件夹下的每个desktop文件Exec参数指向的脚本或可执行文件。一个最简单的desktop文件模板如下:
[Desktop Entry] Name=<应用程序名> Type=Application Exec=<应用程序或脚本完整路径> Icon=<应用程序图标的完整路径>
使用该方法需要注意执行脚本的用户为普通用户,所以当脚本中出现sudo命令时,需要采用类似于“echo "your password" | sudo -S some command”的hack方法去实现开机自启需要管理员权限的命令。
浙公网安备 33010602011771号