问题标签 [tty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
11375 浏览

linux - 如何检查 Perl 脚本是否在终端中运行?

我试图在 Linux 上的 Perl 脚本中确定它是否在终端中运行。

也就是说,我需要这样的代码:

  • 仅在命令行上运行时返回 true
  • ./myscript.pl | less运行时甚至返回 true./myscript.pl </dev/null >/dev/null 2>/dev/null
  • 在 cron 作业中运行或作为 CGI 脚本运行时返回 false

特别是因为第二个子弹,我不能使用-t STDOUT和变化,而且IO::Interactive也没用。

信息似乎是可用的。如果我 run ,它会在列中ps显示一个条目,即使当我 run以及作为 cron 作业或 CGI 脚本运行时也是如此。pts/2TTY./myscript.pl </dev/null >/dev/null 2>/dev/null?

有没有一种优雅的方法可以在 Perl 脚本中确定这一点?我宁愿不必解析ps.

0 投票
6 回答
26520 浏览

shell - 在后台 shell 脚本中使用 netcat/cat(如何避免停止(tty 输入)?)

摘要:如何在后台运行交互式任务?

详细信息:我试图在 ash shell (Busybox) 下运行这个简单的脚本作为后台任务。

我的脚本.sh&

但是脚本立即停止...

[1]+ 停止(tty 输入)myscript.sh

myscript.sh 内容...(仅相关部分,除此之外我捕获 SIGINT、SIGHUP 等)

通过简单的命令行测试,我发现 bot cat 和 netcat 尝试从 tty 读取。请注意,此 netcat 版本没有 -e 来抑制 tty。

现在可以做些什么来避免 myscript 停止?

我尝试过的事情没有任何成功:

1) netcat/cat ... < /dev/tty (或 的输出tty

2) 使用 () 在子 shell 中运行包含 cat 和 netcat 的块。这可能有效,但是如何获取猫的 PID?

交给各位专家...


问题依然存在。一个简单的测试供大家尝试:

1) 在一个终端运行 netcat -l -p 11111 (不带 &)

2)在另一个终端运行 netcat localhost 11111 & (这应该会在一段时间后停止并显示消息 Stopped (TTY input) )

如何避免这种情况?

0 投票
4 回答
6433 浏览

ssh - rsync 退出并显示消息“stdin is not a tty”

我想对我有 SSH 访问权限的远程服务器使用 rsync。我使用以下命令:

rsync -e 'ssh -p 22222' -rtz --delete content_dir/user@example.com:/home/user/public_html

输入命令后,它会询问远程位置的密码。当我输入它时,它会退出并显示消息,

标准输入:不是 tty

如何为 rsync 提供密码?当我在 shell 脚本中使用它时,建议的方法也应该有效。

0 投票
2 回答
45634 浏览

java - unix ps 命令中的 TTY 是什么意思?

当我运行 PS 时,其中一列输出是 TTY。这是什么意思?特别是“??”的 as 值如何?与“ttys000”比较?

我问是因为我有一个sort通过 ProcessBuilder 执行的 Java 程序,并且当这个程序通过我的 IDE (IntelliJ) 运行时,该过程比在 IDE 之外作为可执行 jar 运行时少 5 倍。

在每种情况下,我都会在排序运行时运行 ps,唯一的区别是 IDE 创建一个 TTY 为 ?? 而 jar 创建一个 TTY 为 ttys000 的进程。

0 投票
1 回答
186 浏览

php - TTY ,SWIG and PHP

Need some help here. I have a c++ library for communicating with an embedded module (ArchLinux) via tty. This library was compiled/converted into php using swig.

The issue now is that a sample program written in php and run from the command line executes as expected but when this same code is used as part of a web page's functionality it fails to execute.

My assumption based on my limited linux knowledge is that tty requires a console in order to run which is why it fails to run as part of a webpage??

Does anyone have any ideas as to how I can get this to work? I have read something about using posix_ttyname but I cant seem to find any code samples that demonstrate its use.

I have attached the offending c++ files along with a test main.php which works for review.

Thanks everyone

http://www.mediafire.com/?ctblcvsy86mdg8p

0 投票
3 回答
4453 浏览

python - 为什么我必须输入 ctrl-d 两次?

为了我自己的乐趣,我编写了一个 python 脚本,它允许我将 python 用于 bash 单行;提供一个 python 生成器表达式;并且脚本对其进行迭代。这是脚本:

以下是您可以如何使用它的方法。

对于预期用途,它可以完美运行!

但是当我不使用管道输入它并直接调用它时,例如:[强调显示我输入的内容]

为了停止接受输入并产生任何输出,我必须输入Enter- Ctrl D-Ctrl DCtrl D- Ctrl D- Ctrl D。这违反了我的期望,即每行都应按输入进行处理,并且Ctrl D随时键入都会结束脚本。我的理解差距在哪里?

编辑:我已经更新了交互式示例,以表明我没有看到 wim 在他的回答中描述的引用,以及更多示例。

0 投票
1 回答
467 浏览

c++ - 哪个串行设备链接到控制台(Linux)?

我想找出哪个串行设备(/dev/ttyS0-X)链接到控制台,这样我就可以跳过它们打开以防止并发问题。这应该在通用 C/C++ 函数中实现,该函数检查所有 tty 设备并返回可用(未链接到控制台)串行设备的选择。

有没有办法从 Linux 内核或 C/C++ 文件库中获取此类信息?

0 投票
1 回答
1122 浏览

linux - 在伪 tty 上运行 slattach

我尝试通过 linux os 上的一对伪 tty 打开网络连接。

好的,这是伪 tty 的“创造面”。

我可以查看 /dev/pts 并在那里找到新的 pty。如果我现在尝试在这边也使用 slattach,我得到:

我用 strace 追踪:

所有这一切都发生在 ubuntu 的不同发行版上,在 10.04 和 11.04 上进行了测试,但都失败了。

我做错了什么?

0 投票
5 回答
3410 浏览

r - 在 bash 脚本中运行时使 R(统计包)等待键盘提示

我正在使用 R 在循环中生成一系列图,用户按下回车键表示他们已经看到了图,是时候继续前进了。这些是使用 rgl 包生成的交互式可旋转图,因此使用 Sys.sleep() 之类的东西还不够好。

目前我可以使用 readline() ,它在交互式运行 R 时可以找到。但是,如果我想在 bash 脚本中运行我的 R 脚本,所有的图都会在屏幕前闪烁。无论我使用以下命令调用 R,都会发生这种情况:

如何让 R 在作为 bash 子进程运行时暂停并等待用户点击?

0 投票
1 回答
1367 浏览

linux - QFileDialog 不会在 Linux 上的 /dev/ 中列出 tty* 文件

我正在开发一个需要打开 USB 串行端口的 Linux 桌面应用程序,通常是 /dev/ttyUSB0 或 /dev/ttyUSB1。我正在使用 QFileDialog 让用户选择文件:

当我将 FileDialog 指向 /dev 时,我可以通过键入“ls /dev -al”看到的所有文件都不存在。目录显示出来,但例如,这个文件没有:

我的用户是拨出组的成员:

我已经尝试添加 QDir::Readable 和 QDir::Writable 并且上面的文件仍然没有出现。我究竟做错了什么?