这里是介绍项目使用到了开机自启动功能,和ubuntu系统不同,这里采用一种类似app的方式进行启动。 具体方法如下: 1.创建文件
首先找一个位置创建一个xxx.local文件,其内容如下: #!/bin/sh
cd /home/
./toimage
exit 0
这里toimage是我自己的一个测试程序。当然也可以替换成其他程序或者脚本文件,都是可以的。
local文件和.sh脚本文件基本类似的。
2.修改属性
修改.local文件的属性,添加可执行权限,对toimage应用程序也要添加可执行权限。 sudo chmod +x xxx.local
sudo chmod +x toimage
3.创建desktop文件 创建文件其内容如下: [Desktop Entry]
Name=xxx //此处写文件名
Exec=/home/xxx.local //此处写上一步创建的local文件的路径
Icon=default
StartupNotify=false
Terminal=false
Type=Application
Categories=Network;
StartupWMClass=generalstartup
4.修改属性并添加到应用程序 在终端输入如下命令: sudo chmod +x xxx.desktop
sudo mv xxx.desktop /usr/share/applications/
5.这时打开左下角的系统菜单,可以找到该desktop文件出现在软件列表内。点击系统设置——系统——开机启动——添加自启动程序,将该desktop文件选中即可实现开机自启
开机启动如下:
无图形化界面 创建我们需要开机自启动的脚本,例如test.sh,其内容如下:
#!/bin/sh
cd /home/
./toimage
exit 0
systemctl service服务文件夹在/lib/systemd/system(基本服务文件夹)与/etc/systemd/system(开机启动文件夹)。先添加基本服务,所以在/lib/systemd/system下创建restart.service,内容如下:
[Unit]
After=network.service
# After表示在哪个服务启动后启动我们的程序,After=network.service 表示网络连接完成后,启动我们的程序
[Service]
ExecStart=/home/hqc/test.sh # 此处只能绝对路径
# ExecStart表示我们的脚本(步骤1中的test.sh)的执行路径
[Install]
WantedBy=default.target
# WantedBy默认填default.target,表示我们程序所在的服务组。
[Unit] 段: 启动顺序与依赖关系,如After=network.target,就说明在network.target服务启动之后。
[Service] 段: 启动行为,如何启动,启动类型,看上面的配置就知道意义了; [Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动
将systemd服务文件和我们的脚本更改权限,使其可执行。 sudo chmod 744 ~/test.sh
sudo chmod 664 /etc/systemd/user/restart.service
重新加载系统的systemd服务文件,并启用我们自己写的restart.service文件。
sudo systemctl daemon-reload
systemctl enable restart.service
取消开机自启动
systemctl disable restart.service cd /etc/systemd/user rm user-defined.service
|