Scripting
ps中不顯示使用screen命令的sleep命令
我正在使用螢幕和分離模式在終端中執行睡眠命令。
一旦螢幕立即返回,我正在執行
ps
命令來驗證睡眠是否正在執行。$ screen -d -m 'sleep 2m' [raj@localhost ~]$ ps PID TTY TIME CMD 22795 pts/0 00:00:00 bash 22869 pts/0 00:00:00 ps
但是該命令沒有顯示睡眠。我在這裡做錯了什麼?
這最初也讓我感到困惑。然後我重新閱讀了
screen
SYNOPSIS 的本地手冊頁——線上手冊頁沒有給出概要)——並註意到它說:screen [ -options ] [ cmd [ args ] ]
…這使我相信它希望將
cmd
andargs
視為獨立的論點。由於您將第一個參數作為引用值給出 - ’
sleep 2m
’ - 它試圖執行一個名為(完全)’sleep 2m
’ 的命令,而不是你真正想要的,它sleep
有自己的參數2m
. 該screen
命令成功退出(在我的測試中),但它沒有成功執行您的命令。改用:
screen -d -m sleep 2m
而不是
ps
,它只會顯示與目前終端關聯的程序(其中 SCREEN 和相關程序不是),使用:ps x
這將顯示它:
$ ps x PID TTY STAT TIME COMMAND # ... 7514 pts/1 Ss 0:00 -bash 7761 ? Ss 0:00 SCREEN -d -m sleep 2m 7762 pts/2 Ss+ 0:00 sleep 2m 7880 pts/1 R+ 0:00 ps x # ...