Ubuntu / Python:无法从SubProccess.Popen启动Chromium

时间:2017-08-25 06:55:34

标签: python ubuntu chromium popen

基本上,我已插入Arduino与我的计算机进行通信,目标是在我点击按钮时打开Chromium。单击时,arduino将在serial communication上发送一个字符串,由于Python脚本,计算机将获得此字符串。

然后,此脚本将使用Chromium

启动Popen(['chromium-brower'])

我已经能够毫无问题地完成所有这些工作,但Chromium无法启动。语法是正确的,但终端返回一个我不理解的奇怪错误。

  

sudo python serialtest.py       开始       [0825/084720:错误:nss_util.cc(96)]无法创建/home/dlslabo/.pki/nssdb目录。       [0825/084721:致命:chrome_main_delegate.cc(386)]检查失败:process_type.empty()。无法获取用户数据目录   流程类型:zygote       #0 0x7f1a233095fe base :: debug :: StackTrace :: StackTrace()       #1 0x7f1a23325f8e logging :: LogMessage :: ~LogMessage()       #2 0x7f1a2f3a11f5       #3 0x7f1a2aa8f224       #4 0x7f1a2aa8d80d content :: ContentMain()       #5 0x7f1a2f3a065a       #6 0x7f1a17a25a40 __libc_start_main       #7 0x7f1a2f3a0519

这是我的python程序:

#!/usr/bin/env python

import serial
from subprocess import Popen

ser = serial.Serial('/dev/ttyACM0', 9600)

while 1 :
   line = ser.readline().strip()
   print line
   if line == "start":
      p = Popen(["chromium-browser"])

我尝试使用其他应用Popen(["gedit"])Popen(["firefox"]),但效果很好。 从我在互联网上看到的内容来看,这可能是因为我以超级用户的身份执行脚本。但我不知道为什么这会导致问题。

1 个答案:

答案 0 :(得分:1)

drupal_map_assoc用户身份运行浏览器(或任何其他非系统管理程序)对安全性不利。

您似乎正在使用'#options' => $styles, ,因为您需要访问特定的设备节点。在这种情况下,您可以使非root用户成为设备的所有者。最简单的方法是通过udev规则。使用以下内容创建名为tensorboard --logdir=name_of_the_folder 的文件:

{{1}}

如果更多用户可能需要访问权限,请为他们创建一个组,例如{{1}},然后设置{{1}}和{{1}}。 More about writing udev rules here.