gpt4 book ai didi

python - Ubuntu/Python : Can't launch Chromium from SubProccess. 弹出

转载 作者:行者123 更新时间:2023-12-04 19:13:45 25 4
gpt4 key购买 nike

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

该脚本随后将启动 Chromium使用 Popen(['chromium-brower'])
除了 Chromium 之外,我已经能够毫无问题地完成所有这些操作。那不会启动。语法是正确的,但终端返回一个我不明白的奇怪错误。

sudo python serialtest.py start [0825/084720:ERROR:nss_util.cc(96)] Failed to create /home/dlslabo/.pki/nssdb directory. [0825/084721:FATAL:chrome_main_delegate.cc(386)] Check failed: process_type.empty(). Unable to get the user data directory for process type: 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"])它工作得很好。
从我在互联网上阅读的内容来看,这可能是因为我正在以 super 用户身份执行脚本。但我不知道为什么这会导致问题。

最佳答案

root 运行浏览器(或任何其他非系统管理程序)用户对安全性来说是个坏主意。

您似乎在使用 root因为您需要访问特定的设备节点。在这种情况下,您可以让非 root 用户成为设备的所有者。最简单的方法是通过 udev 规则。创建一个名为 /etc/udev/rules.d/99-tty-acm.rules 的文件内容如下:

KERNEL=="ttyACM0", OWNER="mynonrootuser", MODE=0660

如果更多用户可能需要访问权限,请为他们创建一个组,例如 ttyacm , 并设置 GROUP="ttyacm"MODE=0660 . More about writing udev rules here.

关于python - Ubuntu/Python : Can't launch Chromium from SubProccess. 弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45875940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com