【问题标题】:Ubuntu run python script on system startup that is using FirefoxUbuntu 在使用 Firefox 的系统启动时运行 python 脚本
【发布时间】:2016-12-19 03:56:25
【问题描述】:

我编写了 python 脚本,它使用 subprocess.pOpen() 模块来运行和操作 2 个 GUI 程序:Firefox 和 VLC 播放器。我在桌面模式下使用 Ubuntu 14.04 LTS 操作系统。

我的问题是当我尝试在系统启动时运行该 python 脚本时,脚本正在运行但 Firefox 或 VLC 没有启动。

到目前为止,我尝试制作 shell 脚本来运行我的 python 脚本,然后使用 crontab@reboot /home/user/startup.sh 来执行我的 python 脚本。我为正在使用的每个脚本设置了所有权限。我给了我的用户 root 权限,所以一切正常。

我还尝试运行我的脚本,将命令 "sudo python /path/to/my/script.py" 放入 /etc/rc.local 文件中,但这也无济于事。

我用谷歌搜索并发现有人使用他们放在~/.config/autostart/ 目录中的.desktop 文件,但也失败了。我写的例子:

[Desktop Entry]
Type=Application
Exec="sudo python /home/user/path_to_my_script/my_script.py"
X-GNOME-Autostart-enabled=true
Name=screensplayer
Comment=screensplayer

我在~/.config/autostart/ 目录中将其保存为program.desktop,但它不起作用。我确信有办法解决这个问题,但不知道如何。任何帮助将不胜感激!

【问题讨论】:

    标签: python linux shell ubuntu firefox


    【解决方案1】:

    找到我的问题的解决方案。当您在 python 中使用pOpen 运行命令时,如下所示:

    FNULL = open(os.devnull, 'w')
    _FIREFOX_START = ["sudo", "firefox", "test.com/index.html"]
    subprocess.Popen(self._FIREFOX_START, stdout=self.FNULL, stderr=subprocess.STDOUT)
    

    由于“sudo”字样,它不会运行应用程序,当我删除它时,它可以工作。

    同样在终端运行 gnome-session-properties 并添加新的启动应用程序,注意你必须在没有 sudo 的情况下执行 python 脚本,像这样:

    python /home/user/path_to_script/script.py
    

    另外,我授予了我的用户 root 权限,所以请记住这一点。

    【讨论】:

      猜你喜欢
      • 2014-08-22
      • 2020-07-16
      • 1970-01-01
      • 2018-11-07
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2020-10-31
      相关资源
      最近更新 更多