草庐IT

linux - 如何检测属于 gsm/3g-modem 的 tty 是数据端口还是控制端口?

我目前正在为linux路由器编写一个小工具,当我将适当的调制解调器插入其USB端口时,它会设置wwan(gsm/3g)连接。当设备插入时,会注册多个ttys,我目前维护一个制造商和设备列表,以及他们注册的ttys中的哪个是控制/数据端口。如果可能的话,我想摆脱这个列表,并找到一种方法以某种方式直接探测已注册的ttys,以检查它们是控制端口还是数据端口。我检查了wvdial和modem-manager的源代码以了解这些工具如何检测正确的端口但无法找到合适的信息。我还尝试在sysfs中查找信息以区分端口,但这也没有成功。 最佳答案 您无

Python TTY 控件

我想我不清楚getty/agetty/mgetty程序在linux/unix机器上的功能是什么。我可以用这样的东西在tty上启动一个shell:TTY='/dev/tty3'cpid=os.fork()ifcpid==0:os.closerange(0,4)sys.stdin=open(TTY,'r')sys.stdout=open(TTY,'w')sys.stderr=open(TTY,'w')os.execv(('/bin/bash',),('bash',))..如果我切换到tty3,则有一个shell正在运行-但一些击键被忽略/永远不会被发送到shell。shell知道TTY设置

linux - 来自定时任务的 "stdin: is not a tty"

每次执行特定的cronjob时,我都会收到以下邮件。当我直接甚至从cron调用它时,被调用的脚本运行良好。所以我收到的消息并不是真正的错误,因为脚本完全按照它应该做的去做。这是cron.d条目:*****root/bin/bash-l-c"/opt/get.sh>/tmp/file"和get.sh脚本本身:#!/bin/sh#groupandurlgroups="foo"url="https://somehost.test/get.php?groups=${groups}"#encryptionpass='bar'method='aes-256-xts'pass=$(echo-n$pa

linux - 无法创建 RFCOMM TTY : Address already in use

我在我的服务器中监听蓝牙连接:rfcommlistenrfcomm11然后我连接到我的蓝牙客户端并出现此消息:ConnectionfromXX:XX:XX:XX:XX:XXto/dev/rfcomm1PressCTRL-Cforhangup这意味着一切正常...然后我通过在服务器或客户端中执行Ctrl+C来完成我的连接。在此之后,我再做一次:rfcommlistenrfcomm11但是这一次,当我连接客户端时,我收到了这条消息:Can'tcreateRFCOMMTTY:Addressalreadyinuse所以我去检查哪些连接是打开的:rfcomm-a我可以看到连接显示为已关闭,但一旦

linux - TTY + 键盘绑定(bind)中的 Emacs

我在TTY模式(-nw)中使用emacs,我可以使用大多数开箱即用的键绑定(bind)。但是,有些组合键我找不到xterm转义序列(例如C-;、C-、C->等.)我想配置我的终端仿真器来发送它们,但找不到从哪里开始。我也不想求助于定义自定义转义序列,稍后我将配置emacs以通过键重新映射进行解释。我可以使用任何想法/指示吗? 最佳答案 这个问题的第一个答案会解释它:https://superuser.com/questions/83166/using-c-m-to-do-a-query-replace-regexp-in-emacs

python - 使用 popen 和专用的 TTY Python 运行交互式 Bash

我需要在Python的单独进程中运行一个交互式Bash实例,它有自己的专用TTY(我不能使用pexpect)。我使用了我在类似程序中经常看到的这段代码片段:master,slave=pty.openpty()p=subprocess.Popen(["/bin/bash","-i"],stdin=slave,stdout=slave,stderr=slave)os.close(slave)x=os.read(master,1026)printxsubprocess.Popen.kill(p)os.close(master)但是当我运行它时,我得到以下输出:$./pty_try.pybas

linux - 如何将 stdout、stderr 重新路由回/dev/tty

我只是通过ssh连接到某个远程服务器,发现我尝试在bash中运行的所有命令/进程的stdout和stderr都被重定向到某个地方。所以,我得到了以下问题如何检测:1)哪个文件stdout,stderr在Linux中被重新路由?和2)以及如何默认将stdout和stderr重新路由回/dev/tty?提前谢谢你。 最佳答案 一个真正应该执行您在(2)中要求的命令是exec>/dev/tty2>&1但我怀疑你对问题的分析不正确。查看ssh-v...的输出会很有用(其中...是您在原始ssh中输入的任何参数命令)。

linux - 如何从命令行/tty 启动 GNOME Wayland session ?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭去年。Improvethisquestion我正在试验Wayland。您可以通过startx命令用X启动Gnome。有没有办法通过一些命令用wayland启动Gnome?我希望能

linux - 将数据管道传输到需要 TTY(终端)的 Linux 程序

我在Linux中有一个程序,如果它的标准输入/标准输出不是TTY(终端设备),它会拒绝运行。是否有易于使用的工具可以创建PTY,使用新创建的TTY启动程序,并通过标准输入/标准输出复制所有数据?用例不是交互式的,而是脚本化的。我正在寻找最轻量级的解决方案,最好不创建TCP连接,并且不需要安装太多其他工具和库。 最佳答案 unbuffer是expect的一部分(sudoapt-getinstallexpect-dev在UbuntuLucid上),可以让程序误认为它已连接到TTY。$tty/dev/pts/3$echo|ttynotat

PHP CLI : How to read a single character of input from the TTY (without waiting for the enter key)?

我想从PHP的命令行一次读取一个字符,但似乎有某种输入缓冲从某处阻止了这一点。考虑这段代码:#!/usr/bin/php输入“foo”作为输入(然后按回车键),我得到的输出是:input#fooReadfromSTDIN:finput#ReadfromSTDIN:oinput#ReadfromSTDIN:oinput#ReadfromSTDIN:input#我期待的输出是:input#finput#ReadfromSTDIN:finput#oinput#ReadfromSTDIN:oinput#oinput#ReadfromSTDIN:oinput#input#ReadfromSTDI