AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 458767
Accepted
mehov
mehov
Asked: 2018-07-27 23:11:15 +0800 CST2018-07-27 23:11:15 +0800 CST 2018-07-27 23:11:15 +0800 CST

`/etc/network/if-up.d` 脚本运行,但不启动 GUI 应用程序(例如 firefox-esr)

  • 772

firefox-esr一旦网络可用,我需要开始。

这是我所拥有的:

sudo tee "/etc/network/if-up.d/upif" > /dev/null << EOFBOOT
#!/bin/bash
DISPLAY=":0"
if [[ "\$IFACE" = "eth0" || "\$IFACE" = "wlan0" ]]; then
    echo "\$(date) \$IFACE" >> /var/log/upif
    firefox-esr &
fi
EOFBOOT
sudo chmod +x "/etc/network/if-up.d/upif"

我在日志文件中获取日期和接口名称,这意味着脚本运行,但firefox-esr没有启动。

我试过的:

  • 添加DISPLAY=":0"
  • grep -inR "firefox" /var/log
  • 使用可执行文件的完整路径,即/usr/bin/firefox-esr
  • 使用sudo firefox-esr &
  • 删除尾随&

没有任何帮助。但是,如果我把IFACE="eth0"shebang 放在下面然后sudo /etc/network/if-up.d/upif手动运行,那么您在上面看到的那个确切的脚本就会完成这项工作并启动 firefox。

我不确定那里有什么问题。

这是2018-06-27-raspbian-stretch-lite运行 Debian 9.4。

PS 另外,我最初在尝试启动之前有逻辑检查 Firefox 是否已经运行,但是一旦我意识到 Firefox 根本没有启动,我就删除了它

UPDATE发现类似问题:Start a GUI in NetworkManager if-up.d script

debian raspberry-pi
  • 2 2 个回答
  • 420 Views

2 个回答

  • Voted
  1. Best Answer
    Vladimir Panteleev
    2018-07-27T23:30:25+08:002018-07-27T23:30:25+08:00

    网络事件脚本以 root 用户身份运行,但您的桌面环境可能(希望)不是。

    一般来说,这似乎是一个有问题的方法。缺少一些东西:

    • Firefox 应该以您的登录用户身份运行,而不是 root。
    • Firefox 需要能够对 X 服务器进行身份验证才能连接到它(请参阅~/.Xauthority和man xauth)。
    • Firefox 的环境需要设置为在桌面会话中正常工作(HOME等XDG_RUNTIME_DIR)

    我建议尝试一种不同的方法,例如让网络脚本将网络状态(通过管道/临时文件/DBus)传达给已经在用户会话中运行的东西(例如从~/.xinitrc启动),然后根据需要启动 GUI 应用程序。

    • 3
  2. mehov
    2018-07-27T23:32:08+08:002018-07-27T23:32:08+08:00

    感谢 Fadabi Nawi,答案如下:

    su pi -c "DISPLAY=:0.0 /usr/bin/firefox-esr &"
    

    关键点:

    • su 到您通常使用的实际用户(pi在我的情况下)
    • 在此处传递显示编号(TODO:找出实际的显示编号而不是假设它是:0)
    • 重要的是使用 Firefox 可执行文件的完整路径,而不是firefox-esr
    • 0

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve