因此,我正在编写一个命令行工具,并遇到了一个我很好奇的问题。如何检查是否通过ssh远程调用python脚本
该实用程序可以使用文件参数调用,也可以从sys.stdin
中读取。本来我是用sys.stdin.isatty()
弄清楚,如果数据被管道中,但是,我发现,如果我通过ssh server utility
远程调用的效用,sys.stdin.isatty()
将返回false,尽管没有实际的数据被输送。
作为解决方法,我使用-
作为强制从标准输入读取的文件参数(例如:echo "data_here" | utility -f -
),但我很想知道是否有一种可靠的方法来区分从一个进程获取数据的管道与因为这个调用是通过ssh来打开的。
系统编程不是我的专长,所以我很感激我能从你们那里得到任何帮助。
所有管道都是一样的,所以不要以为你可以。你可能不得不考虑进程组和父进程 - 但这变得非常讨厌 – Soren