通过有关与ps --help all相关的选项(S)的tty命令,存在以下内容:
-a all with tty, except session leaders
a all with tty, including other users
x processes without controlling ttys
我知道tty[1-6]和pts/[0...N]之间的区别,前者是基于通过控制台的直接连接,后者是通过远程连接(即:ssh),如果有问题请纠正我。
通过Ubuntu服务器的
好吧,这至少让我忙了一天,从昨晚开始。我正在尝试做一些非常简单的事情:运行一个bash脚本,它创建了几个文件夹并运行了一个docker容器,但是使用了upstart。但我得到了许可错误:
创建文件夹的权限错误取决于它定义为setuid的用户
无论如何,我得到了错误的cannot enable tty mode on non tty input
我尝试过将setuid与用户vuvu一起使用,或者只是将其置之不理。如果我不使用setuid,我就会得到cannot enable tty mode on non tty input,如果我使用设置为admin的用户,我会得到这个错误以及cannot c
所有人。我对编程还不熟悉。我真的需要一些关于我所面临的问题的帮助。所以,这里的情况是,当终端尺寸低于80x24时,我试图显示一个警告。作为记录,我的Os是窗口,但是我使用虚拟机运行Linux,因为所有文件都在Linux中。使用终端运行文件时,警告显示正确。但问题是当我尝试使用PuTTY从Windows运行该文件时。警告没有出现。我确信这是因为我使用的函数只能读取Linux环境,而不能读取Windows。有人能帮我或指点我如何使它能够得到窗口的尺寸方向吗?所有文件都应该保留在Linux中。我在用C。
下面是代码的一部分,用于显示警告和获取维度。
//This is to display warn
我正在用Python3编写一个生成subprocess.call的脚本,该调用要求用户编写一个密码。我希望脚本调用子进程,然后自动写入密码,但到目前为止还没有成功。我正在Linux机器上执行它,如果它有任何帮助的话。
我已经尝试过Popen和Pipe
p = Popen("Command that when executed requires me to input a password", shell=True, stdin=PIPE) p.stdin.write(PASSWORD.encode("UTF-8"))
这会给出一个错误,指出密码无法读取(这意味着
当通过ssh在服务器内部运行时,我的bash脚本会运行异常嘈杂。
+ sudo apt-get install -yqq nodejs
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
debconf: unable to ini
与类似,但我也希望将stdout保留为TTY设备。
例如,我有以下脚本:
/tmp/teed-off$ cat some-script
#!/usr/bin/env ruby
if $stdout.tty?
puts "stdout is a TTY"
else
puts "stdout is NOT a TTY"
end
/tmp/teed-off$ cat wrapper
#!/usr/bin/env bash
exec > >(tee some-script.log)
./some-script
当我运行它们时,包装器将stdo
我想直接从ssh命令以交互方式运行docker容器。
我当前的代码如下所示(我使用echo hi作为占位符):
$ ssh vagrant@127.0.0.1 -p 2222 "docker run -ti ubuntu:xenial echo hi"
the input device is not a TTY
我还尝试显式地创建一个交互式登录shell:
$ ssh vagrant@127.0.0.1 -p 2222 "bash -ilc 'docker run -ti ubuntu:xenial'"
bash: cannot set term
我有一个构建机器,它有一个用户abc,这是有限的sudo访问。当我签出源代码并运行我的构建脚本时,它工作得很好。构建脚本包含sudo调用,它没有对这些调用说"sudo: no tty存在,也没有指定任务传递程序“。但是,当我在添加为从机的构建机器上对Jenkins做同样的事情时,它显示了"sudo: no tty存在和没有指定的任务传递程序“。
我找到了一个解决方案,可以在文件Default requiretty中注释掉/etc/sudoers。但我不能访问这个文件。
我怎样才能克服这个问题?