在银河麒麟v10桌面环境中,应将自定义shell脚本通过.desktop文件部署至~/.config/autostart/目录实现开机自启:需确保脚本有+x权限、exec用绝对路径并显式调用/bin/bash、.desktop文件设chmod +x且属主为当前用户,避免rc.local权限问题。

在银河麒麟V10桌面环境中让自定义Shell脚本开机自动运行,需避开rc.local权限失效陷阱,直接走桌面会话级启动路径,确保脚本在图形界面就绪后稳定执行。
创建可执行的.desktop启动文件
打开终端,进入用户桌面目录:cd ~/Desktop。
新建一个以.desktop为后缀的文件,例如:touch mount-nfs.desktop。
用文本编辑器打开它:nano mount-nfs.desktop,填入以下内容(注意替换实际脚本路径):
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Mount NFS Share
Exec=/bin/bash /home/kylin/scripts/mount_nfs.sh
Terminal=false
Hidden=false
X-GNOME-Autostart-enabled=true
【Exec必须写绝对路径,且脚本本身需有+x权限】。若脚本路径含空格或中文,必须用单引号包裹整个路径,例如:Exec=/bin/bash '/home/kylin/我的脚本/mount.sh'。
将.desktop文件部署到自动启动目录
执行命令创建自动启动目录(若不存在):mkdir -p ~/.config/autostart。
把.desktop文件复制过去:cp ~/Desktop/mount-nfs.desktop ~/.config/autostart/。
赋予该.desktop文件可执行权限:chmod +x ~/.config/autostart/mount-nfs.desktop。
这一步不能跳过——没有执行权限的.desktop文件会被GNOME/UKUI桌面忽略,不会加载。
验证脚本权限与执行环境
方法一:终端中手动运行脚本测试是否成功:/home/kylin/scripts/mount_nfs.sh。
方法二:检查脚本首行是否为#!/bin/bash或#!/usr/bin/env bash;若使用sudo命令,需提前配置免密策略,否则静默失败。
方法三:在脚本开头添加日志输出,例如echo "$(date): start" >> /tmp/mount.log,重启后检查日志是否生成,确认是否触发执行。
注意:.desktop文件中Terminal=false时,错误不会弹窗提示,所有报错都只能靠日志定位。
重启并确认生效
完成上述步骤后,重启系统。
登录桌面后,观察任务栏或进程列表:ps aux | grep mount_nfs.sh。
若脚本未运行,立即检查~/.config/autostart/下.desktop文件的Owner是否为当前用户——若由root创建,需用chown $USER:$USER ~/.config/autostart/mount-nfs.desktop修正所有权。











