唤醒脚本未启动 Chromium 浏览器(Ubuntu 16.04)

唤醒脚本未启动 Chromium 浏览器(Ubuntu 16.04)

每次笔记本电脑从休眠/睡眠状态唤醒以及启动时,我都需要在某个页面上打开浏览器。

我已经在文件夹中创建了一个脚本 wakeUp.sh,/lib/systemd/system-sleep/chmod 777 /lib/systemd/system-sleep/wakeUp.sh确保授予该文件所有权限。

现在脚本本身(我尝试在关闭笔记本电脑盖后让浏览器打开页面[睡眠唤醒]):

#!/bin/sh
echo "$@" > /tmp/wakeUpParams.txt
case $1/$2 in
post|*)
    chromium-browser --no-sandbox http://google.com 1>/home/liza/out.txt 2>/home/liza/err.txt
    echo "$@" > /tmp/AfterBrowserLaunch.txt
    ;;
esac

在脚本中,我将传入参数的输出保存到一个/tmp文件夹中,关闭/打开盖子后,我在 txt 文件中找到这些参数:

post suspend

因此参数 $1 = post 且 $2 = suspend

如果我从终端运行脚本:

sudo ./wakeUp.sh

或者

sudo ./wakeUp.sh post suspend

它成功运行。因此它执行打开浏览器的那一行。

如果我关闭/打开盖子,wakeUpParams.txt 中的参数仍然存在post suspend并且该echo "$@" > /tmp/AfterBrowserLaunch.txt行也会执行,但浏览器仍然不会启动。

现在来说说错误:

当我通过终端执行脚本时浏览器启动了,但是 err.txt 文件中出现错误:

    Home directory not accessible: Permission denied
[13870:13961:0316/181921.003202:ERROR:bus.cc(394)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")

(chromium-browser:13870): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Unknown or unsupported transport 'disabled' for address 'disabled:'
[13870:13870:0316/181922.813336:ERROR:gpu_process_transport_factory.cc(1009)] Lost UI shared context.
[13968:14061:0316/181923.018813:ERROR:cmd_buffer_helper.cc(158)] ContextResult::kFatalFailure: CommandBufferHelper::AllocateRingBuffer() failed

out.txt 是空的。

当盖子关闭/打开时:

  • out.txt-空
  • err.txt - 空(为什么这里没有错误?)

我还使用参数执行,chromium-browswer因为--no-sandbox由于chromium-browser --no-sandbox某些安全问题,如果没有这个参数,它就无法从终端启动。这是正常的启动方式吗?因为浏览器在黄色消息弹出中说:“您正在使用不受支持的命令行标志:--no-sandbox。稳定性和安全性将受到影响。”这是chromium-browser从命令行执行的最佳方式吗?

更新 1

我换了chromium-browser一个简单的文本编辑器gedit,它仍然无法在打开/关闭盖子时启动 Gedit,而终端脚本运行时没有问题...所以我认为这不是 Chromium 的问题...

更新 2

开始明白从 systemd 启动 GUI 是个坏主意。请参阅使用 systemd 在启动时启动 Chromium - Unix 和 Linux

相关内容