开机自启动的功能实现
linux下面实现开机自启的方式有很多,这里主要讲下对小白比较友好的几种方式
- 创建.desktop文件
首先你需要创建一个xxx.desktop文件,并放置/etc/xdg/autostart或者~/.config/autostart下,尽量给到644权限
[Desktop Entry] // 格式规范
Name=program // 应用程序的特定名称
Exec=/usr/bin/program // 可执行文件的路径
Type=Application //程序类型
上面几个字段是必须项,最重要的还是Exec项;更多的需求可以参考文档(https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html)最终的成品如下:
[Desktop Entry]
Version=1.0
Name=Remmina 面板小程序
Comment=通过小程序菜单快速连接到远程桌面
Icon=org.remmina.Remmina
Exec=/usr/bin/remmina -i
Terminal=false
Type=Application
Hidden=true
验证的时候执行sudo systemctl restart lightdm.service 就可以
- systemd 创建开机自启服务
在 /usr/lib/systemd/system 下新建服务脚本
sudo vim /usr/lib/systemd/system/xxx.service
[Unit]
Description=描述
Environment=环境变量或参数(系统环境变量此时无法使用)
After=network.target(在哪个服务加载后启动)
[Service]
Type=single(服务类型,默认为single)
EnvironmentFile=所需环境变量文件或参数文件
ExecStart=启动命令(需指定全路径)
ExecStop=停止命令(需指定全路径)
User=以什么用户执行命令
[Install]
WantedBy=multi-user.target
新建完成后设置自启动
添加或者修改配置文件后,需要重新加载daemon状态
sudo systemctl daemon-reload
设置自启动,实质就是在 /etc/systemd/system/multi-user.target.wants/ 添加服务文件的链接
执行sudo systemctl enable xxx
验证时进行sudo reboot就可以