银河麒麟V10设置开机自启脚本教程
在银河麒麟V10操作系统中,实现脚本开机自动运行并非单一命令即可完成。核心区别在于脚本是面向系统服务还是用户交互——系统级任务需采用服务管理机制,桌面应用则需依赖用户登录后的触发方式。若选错方案,脚本可能在后台悄然失败。
以下介绍四种主流开机自启方案,几乎可应对银河麒麟V10中的所有场景。
第一种:systemd服务,系统级任务的可靠选择
当脚本作为后台守护进程或需在系统初始化阶段执行时,systemd是最可靠的方案。操作步骤虽简洁,但存在几个易出错的细节需特别注意:
首先,使用root权限在/etc/systemd/system/目录下创建服务文件,例如命名为myscript.service:
sudo vim /etc/systemd/system/myscript.service
然后,填入如下配置。需特别留意:ExecStart字段必须使用绝对路径,因为systemd不会自动加载用户环境变量:
[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
完成后,使用sudo systemctl status myscript.service命令验证服务状态,确认显示为active (running)。
第二种:/etc/rc.local,传统方式的复活术
如果熟悉Ubuntu的传统做法,可能会发现银河麒麟V10 SP1默认没有/etc/rc.local文件。不必着急,手动创建并激活rc-local服务即可恢复该功能。
第一步是启用rc-local服务链路。执行sudo systemctl enable rc-local.service之前,最好先确认/lib/systemd/system/rc-local.service文件是否存在。
第二步,创建并配置/etc/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
第三种:图形界面程序的自启动,交给UKUI处理
若脚本为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,同样添加该行。
【易错点】crontab的环境变量极为精简,脚本内的所有命令都必须使用绝对路径。推荐的做法是在脚本开头显式设置PATH:
PATH=/usr/local/bin:/usr/bin:/bin
如此一来,许多“命令找不到”的异常问题便能迎刃而解。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Win11频繁断网提示默认网关不可用怎么办
先聊聊一个很常见的问题:Windows 11 电脑刚连接 Wi-Fi 或插上网线时还能正常访问网络,可几分钟后突然“掉线”,任务栏右下角出现“无 Internet”提示,右键诊断显示“默认网关不可用”。这时候重启电脑或点击“修复”能暂时恢复,但用不了多久又会断开。这说明系统其实已经获得了 IP 地址
Mac如何取消正在进行的系统备份任务
Mac 正在执行时间机器备份时,进度条卡在“正在准备”或“备份中”迟迟不动,磁盘读写与网络带宽被持续占用——这种情形下,大多数用户都希望能立即中断任务。设想这样一个场景:你正赶着安装大型软件,或者急需拔出外接硬盘,但系统却执意继续备份。别担心,这里有一套行之有效的解决方案:先在“活动监视器”中强制退
电脑显示器刷新率锁死60Hz无法调整的解决方法
显示器刷新率锁死60Hz时,需检查DP或HDMI线缆版本并更换VESA认证线缆;可通过显示适配器属性勾选隐藏刷新率选项、显卡控制面板自定义时序、清洁安装驱动或使用CRU工具修改EDID强制启用高刷模式。
Linux系统下Systemd服务管理从零开始方法步骤详解完整教程
systemctl管理systemd服务,修改配置于 etc systemd system,启用需daemon-reload再enable。查看状态关注Loaded行,masked服务需unmask并重载恢复。reload发SIGHUP,restart中断连接,reload-or-restart自动降级。日常禁用优先用disable。
Mac如何取消同步iPhone书签和历史记录
彻底关闭iCloudSafari同步并选择“保留在Mac上”,然后手动删除书签文件夹或清理~ Library Safari Bookmarks plist文件,最后通过iCloud官网确认同步已失效,即可彻底清除Mac上的iPhone同步书签。
- 日榜
- 周榜
- 月榜
相关攻略
2026-07-03 07:44
2026-07-03 07:44
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:42
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

