因此,我正在編寫一個命令行工具,並遇到了一個我很好奇的問題。如何檢查是否通過ssh遠程調用python腳本
該實用程序可以使用文件參數調用,也可以從sys.stdin
中讀取。本來我是用sys.stdin.isatty()
弄清楚,如果數據被管道中,但是,我發現,如果我通過ssh server utility
遠程調用的效用,sys.stdin.isatty()
將返回false,儘管沒有實際的數據被輸送。
作爲解決方法,我使用-
作爲強制從標準輸入讀取的文件參數(例如:echo "data_here" | utility -f -
),但我很想知道是否有一種可靠的方法來區分從一個進程獲取數據的管道與因爲這個調用是通過ssh來打開的。
系統編程不是我的專長,所以我很感激我能從你們那裏得到任何幫助。
所有管道都是一樣的,所以不要以爲你可以。你可能不得不考慮進程組和父進程 - 但這變得非常討厭 – Soren