最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
银河麒麟V10开机启动脚本如何添加
时间:2026-07-04 08:03:03 编辑:袖梨 来源:一聚教程网
在银河麒麟V10中实现脚本开机自启需按场景选择机制:系统级服务用systemd(需root权限、绝对路径、权限644、daemon-reload并enable);传统方式需手动启用rc-local服务并配置可执行的/etc/rc.local;GUI程序须通过/etc/xdg/autostart/下.desktop文件由UKUI触发;轻量单次任务可用crontab @reboot,但须显式设置PATH。
在银河麒麟V10系统中让自定义脚本开机自动运行,必须明确区分系统级服务与用户级图形程序的启动机制——systemd服务适用于后台守护进程,而桌面应用需依赖UKUI环境的autostart机制,混用会导致脚本静默失败。
通过systemd创建系统级开机服务
第一步:用root权限在/etc/systemd/system/下新建服务文件,例如myscript.service:
sudo vim /etc/systemd/system/myscript.service
第二步:写入以下内容,注意ExecStart必须使用绝对路径,且不能依赖用户环境变量:
[Unit]
Description=My Custom Script
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash /opt/scripts/myscript.sh
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
第三步:设置文件权限为644,属主为root:root——权限错误会导致systemd拒绝加载该服务:
sudo chmod 644 /etc/systemd/system/myscript.service
第四步:重载配置并启用服务:
sudo systemctl daemon-reload → sudo systemctl enable myscript.service → sudo systemctl start myscript.service
第五步:验证服务状态,检查是否处于active (running):
sudo systemctl status myscript.service
通过/etc/rc.local实现传统方式启动
银河麒麟V10SP1默认不提供/etc/rc.local,需手动创建并激活rc-local服务:
方法一:启用rc-local服务链
执行sudo systemctl enable rc-local.service前,先确认/lib/systemd/system/rc-local.service存在且已正确配置;若不存在,需从备份恢复或重新生成。
方法二:创建并配置rc.local文件
创建文件:sudo touch /etc/rc.local
编辑内容(必须以#!/bin/bash开头,且末尾保留空行和exit 0):
#!/bin/bash/opt/scripts/myscript.sh &exit 0
【关键前提】执行sudo chmod +x /etc/rc.local,否则脚本不会被执行。
最后启用服务:sudo systemctl daemon-reload → sudo systemctl start rc-local.service → sudo systemctl enable rc-local.service
为图形界面程序添加用户级自启动
适用于需要显示GUI窗口的Qt、Python tkinter等程序,必须在用户登录后由UKUI桌面环境触发:
① 创建.desktop文件:
sudo vim /etc/xdg/autostart/myapp.desktop
② 写入内容,其中Name和Exec字段不可为空,Exec路径必须绝对且可执行:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=My Qt App
Exec=/home/kylin/build-myapp-Release/myapp
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
③ 确保目标程序具备执行权限:
chmod +x /home/kylin/build-myapp-Release/myapp
④ 重启或注销重登生效。若程序未启动,检查.xsession-errors日志定位环境变量缺失问题。
使用crontab @reboot实现轻量启动
适合单次执行、无需持续守护的脚本,不推荐用于长期运行的服务:
方法一(当前用户):crontab -e,添加一行:
@reboot /bin/bash /opt/scripts/myscript.sh
方法二(root用户):sudo crontab -e,同样添加@reboot行。
【易错点】脚本内所有命令路径必须绝对,不能依赖$PATH;建议在脚本开头显式设置PATH=/usr/local/bin:/usr/bin:/bin。
相关文章
- 刀剑缭乱2026公测兑换码大全一览 07-05
- 崩坏星穹铁道4.0卡池7个新角色一览 07-05
- 明日方舟终末地开服工业蓝图一览 工业蓝图作用与使用思路解析 07-05
- 原神梦之树怎么开启 梦之树开启条件 07-05
- 帕瓦勇者传说持续伤害阵容搭配推荐 07-05
- 明日方舟:终末地全新玩法 蚀像寻遗怎么玩介绍 07-05