Linux
為什麼將“腳本”重定向到 /dev/null/ 允許“螢幕”在作為另一個使用者被起訴時工作?
我被起訴到一個使用者執行一個特定的長時間執行的腳本。我想使用螢幕,但收到錯誤消息“無法打開您的終端 ‘/dev/pts/4’ - 請檢查。”
所以我用Google搜尋了一下,發現了一個論壇文章,上面寫著執行
$ script '/dev/null/'
。我這樣做了,然後我就可以篩選了。為什麼這行得通?su 在做什麼那個螢幕不能作為被起訴的使用者執行?為什麼將“腳本”重新定向到 /dev/null 會被阻止?是否使用腳本將原始使用者的日誌寫入某處?
好吧,從技術上講,您不會在此處重定向任何內容。
呼叫
script /dev/null
只是script
保存整個打字稿,/dev/null
實際上意味著丟棄內容。有關
man script
詳細資訊,請參閱**util-linux-ng**包以實現 (misc-utils/script.c
)。
screen
這與實際無關。為什麼這個工作是呼叫script
具有為您創建一個偽終端的副作用/dev/pts/X
。這樣您就不必自己動手,並且 screen 不會有權限問題 - 如果您su
從使用者A到使用者B,通過直接呼叫screen
您嘗試獲取使用者A的偽終端。除非您是root,否則這不會成功。這就是您看到錯誤消息的原因。