Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

  • QQ空间
  • 回复
  • 收藏

银河麒麟系统 设置程序开机自启动

lijingle linux 2023-3-22 14:17 2092人围观

这里是介绍项目使用到了开机自启动功能,和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





路过

雷人

握手

鲜花

鸡蛋
我有话说......
电话咨询: 135xxxxxxx
关注微信