商城首页欢迎来到中国正版软件门户

您的位置:首页 >麒麟操作系统怎么设置开机自启动脚本 麒麟OS高级技巧

麒麟操作系统怎么设置开机自启动脚本 麒麟OS高级技巧

  发布于2026-05-06 阅读(0)

扫一扫,手机访问

麒麟系统脚本开机自启有五种方法:一、图形界面添加.desktop启动项;二、部署.desktop文件至~/.config/autostart;三、配置systemd用户级服务;四、配置systemd系统级服务;五、通过rc.local兼容方式。

麒麟操作系统怎么设置开机自启动脚本 麒麟OS高级技巧

在麒麟操作系统中配置脚本开机自启,如果发现脚本没有按计划跑起来,问题往往出在几个关键环节:启动时机没卡准、执行权限没给够,或者干脆是启动机制选错了。别担心,下面这几种经过验证的方法,总有一款能解决你的问题。

一、通过图形界面添加.desktop启动项

这个方法最适合桌面用户,全程点点鼠标就能搞定,完全不用碰命令行。它依赖UKUI这类桌面环境,在用户登录后初始化会话时,会自动去调用那些.desktop文件。所以,如果你的脚本需要弹出个图形窗口,或者依赖X11环境才能运行,选它就对了。

具体操作起来,也就几步的事儿:

1、首先,点开左下角那个熟悉的“开始菜单”,找到并打开“设置”。

2、在设置窗口里,一眼就能看到“系统”选项,点进去。

3、接下来,在左侧或者顶部的导航栏里,切换到“开机启动”这个选项卡。

4、这时候,一个“添加自启动程序”的按钮就在那儿等着你了,点击它,会弹出一个添加窗口。

5、在窗口里,给程序起个名字,比如“我的监控脚本”。最关键的一步,是在“命令”栏里填上脚本的完整路径,格式像这样:/bin/bash /home/kylin/scripts/monitor.sh。记住,路径一定要写全。

6、最后点击“添加”,大功告成。新加的条目会出现在自启动列表里,旁边还有个开关,可以随时启用或禁用,非常方便。

二、部署.desktop文件至用户级autostart目录

如果你想绕过图形界面,用更“脚本化”的方式批量部署,这个方法就派上用场了。它直接向符合XDG标准的用户自启动目录里扔一个.desktop文件,仅对当前用户生效。好处是能确保脚本在桌面环境完全准备好之后才执行,避免了环境依赖的问题。

操作流程如下:

1、先创建一个标准的.desktop文件,比如命名为myscript.desktop,内容可以这么写:

[Desktop Entry]
Name=自启监控脚本
Type=Application
Exec=/bin/bash -c "/home/kylin/scripts/monitor.sh"
Terminal=false
Hidden=false
StartupNotify=false

2、接着,确保目标目录存在。执行命令mkdir -p ~/.config/autostart,如果目录不存在就创建它。

3、然后,把刚才创建的.desktop文件复制过去:cp myscript.desktop ~/.config/autostart/

4、这里有个细节要注意:Exec字段里的命令,最好使用绝对路径,并且显式地调用/bin/bash,这样可以确保脚本里的shell特性(比如变量、重定向)都能正常使用。

5、最后,别忘了给文件设置合适的权限:chmod 644 ~/.config/autostart/myscript.desktop,让它可读就行。

三、配置systemd用户级服务实现登录前自启

当你的脚本不需要图形界面,但需要像守护进程一样在后台长期运行(比如做日志轮转或者网络探测),并且希望它在用户登录之前就启动,那么systemd的用户级服务就是专业之选。它功能强大,支持进程守护、失败自动重启,还能声明依赖关系。

来看看怎么配置:

1、创建服务单元文件。执行mkdir -p ~/.config/systemd/user && nano ~/.config/systemd/user/monitor-script.service

2、在打开的文件里,填入以下内容(记得把路径换成你实际的脚本路径):

[Unit]
Description=监控脚本服务
After=graphical-session.target

[Service]
Type=oneshot
ExecStart=/bin/bash /home/kylin/scripts/monitor.sh
RemainAfterExit=yes
User=kylin

[Install]
WantedBy=default.target

3、接下来是关键一步:启用linger。执行loginctl enable-linger kylin,这能确保即使用户没有登录,他的用户级systemd实例也会启动。

4、最后,重新加载配置并启用服务:systemctl --user daemon-reload && systemctl --user enable --now monitor-script.service

四、配置systemd系统级服务实现早期自启

有些脚本比较特殊,比如负责硬件初始化或者安全审计的,它们需要在系统启动的早期阶段就运行起来,而且不依赖任何用户会话。这时候,就该请出systemd的系统级服务了,它由root用户管理,拥有完整的系统控制能力。

配置方法大同小异,但位置不同:

1、创建系统级服务单元文件:sudo nano /etc/systemd/system/early-monitor.service

2、文件内容可以参考下面这个例子(假设脚本需要在网络就绪后执行):

[Unit]
Description=早期监控脚本
After=network.target
Wants=network.target

[Service]
Type=oneshot
ExecStart=/bin/bash /opt/scripts/early-check.sh
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target

3、设置文件权限:sudo chmod 644 /etc/systemd/system/early-monitor.service

4、重载systemd并启用服务:sudo systemctl daemon-reload && sudo systemctl enable --now early-monitor.service

五、通过rc.local兼容方式启动遗留脚本

如果你手头有一些年代比较久远的“遗留”脚本,一时半会儿没法改造成systemd服务,或者只是想临时适配一下,那么传统的rc.local方式依然可用。它会在所有基础服务启动之后、用户登录之前执行脚本。不过要提醒一下,这种方式的环境变量可能不完整,需要留意。

使用方法如下:

1、首先,确认rc-local服务在系统里是可用的:sudo systemctl list-unit-files | grep rc-local

2、然后,编辑rc.local文件:sudo nano /etc/rc.d/rc.local

3、在文件末尾的exit 0这行之前,添加上你的启动命令。建议使用完整路径,并且最好把输出重定向到日志文件,方便排查问题,例如:/bin/bash /home/kylin/scripts/legacy.sh > /var/log/legacy-startup.log 2>&1 &

4、别忘了给这个文件加上可执行权限:sudo chmod +x /etc/rc.d/rc.local

5、最后,启用并启动rc-local服务:sudo systemctl enable rc-local && sudo systemctl start rc-local

本文转载于:https://www.php.cn/faq/2408081.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注