You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Linux Mint开机自启的Bash脚本打开终端显示运行结果

问题原因

你在/etc/rc.local中配置开机启动无法弹出终端的核心原因是:rc.local属于系统早期启动任务,运行时Xfce图形会话、用户图形显示环境变量还未完成初始化,脚本中调用xfce4-terminal的指令找不到可用的GUI上下文,自然无法弹出窗口。同时你原有脚本的逻辑也有问题:就算终端能正常弹出,你只是启动了一个空的后台终端进程,后续的ping监控逻辑运行在rc.local的后台系统上下文中,输出根本不会传到弹出的空终端里。

操作步骤

1. 修正监控脚本内容

首先编辑/usr/bin/net.sh,删掉原来无效的xfce4-terminal &行,修正后的完整内容如下:

#!/bin/bash
# 等待系统服务、网络、桌面环境初始化
sleep 30

while true
do
    ping -c1 google.com
    if [ $? -eq 0 ]; then
        echo "Ping Successful. The Device will Continue Operating"
        sleep 600
    else
        systemctl reboot
    fi
done

保存后给脚本添加可执行权限:

sudo chmod +x /usr/bin/net.sh

2. 替换自启动配置方式

删掉你之前在/etc/rc.local中添加的net.sh启动行,改用Xfce桌面的用户自启动机制(该机制在桌面加载完成后才运行,可正常调用GUI程序),两种配置方式二选一即可:

  • 方式一:GUI配置
    • 打开Xfce系统菜单,进入「设置」-「会话和启动」
    • 切换到「应用程序自启动」标签页,点击「添加」按钮
    • 按如下内容填写配置项:
      • 名称:可自定义,比如网络连通性监控
      • 命令:填写 xfce4-terminal --hold -e /usr/bin/net.sh
        参数说明:--hold保证终端窗口不会因异常退出关闭,-e指定终端启动后直接执行监控脚本,所有运行输出都会直接打印在窗口内
      • 注释:可自定义,比如ping谷歌失败自动重启
    • 保存配置,确认该自启项的勾选框为选中状态。
  • 方式二:手动写自启配置文件
    直接创建自启desktop文件到用户自启目录,无需操作GUI:
    cat > ~/.config/autostart/net-monitor.desktop << EOF
    [Desktop Entry]
    Type=Application
    Name=Net Monitor
    Exec=xfce4-terminal --hold -e /usr/bin/net.sh
    X-GNOME-Autostart-enabled=true
    EOF
    
    执行完给该文件加可执行权限:
    chmod +x ~/.config/autostart/net-monitor.desktop
    
验证方法

先手动在终端执行xfce4-terminal --hold -e /usr/bin/net.sh,确认能正常弹出终端窗口,窗口内可看到ping执行结果和连通成功的提示。确认无误后重启电脑,等待30秒左右就会自动弹出监控终端,实时展示脚本运行状态。

内容的提问来源于stack exchange,提问作者John Kerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 20:01:06