Ubuntu在使用Firefox的系统启动时运行python脚本
问题描述:
我编写了python脚本,它使用subprocess.pOpen()
模块来运行和操作2个GUI程序:Firefox和VLC播放器。我在桌面模式下使用Ubuntu 14.04 LTS操作系统。Ubuntu在使用Firefox的系统启动时运行python脚本
我的问题是,当我尝试在系统启动时运行该python脚本时,脚本正在运行但Firefox或VLC无法启动。
到目前为止,我试图让shell脚本运行我的python脚本,然后用crontab
与@reboot /home/user/startup.sh
来执行我的python脚本。我为每个正在使用的脚本设置了所有权限。我给了我的用户root权限,所以一切都OK了。
我也试图运行我的脚本把命令"sudo python /path/to/my/script.py"
在/etc/rc.local
文件,但这也没有帮助。
我搜索了一下,发现有人使用.desktop
文件,他们把它放在~/.config/autostart/
目录中,但也失败了。什么例子,我写道:
[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
但它不工作。我相信有一种方法可以解决这个问题,但不知道如何。任何帮助将不胜感激!
答
找到解决我的问题。当你与pOpen
在Python这样的运行命令:
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-会话属性,并添加新的启动应用程序,要知道,你有没有sudo来执行python脚本,这样的:
python /home/user/path_to_script/script.py
另外,我给予我的用户root特权,因此Kepp认为。