screenコマンドを使用したsleepコマンドはpsに表示されません

screenコマンドを使用したsleepコマンドはpsに表示されません

私は画面を使用しており、分離モードの端末で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

ただし、コマンドには睡眠は表示されません。私がここで何を間違っているのか?

ベストアンサー1

これはまた最初は私を混乱させました。その後、screenローカルのマニュアルページの概要を読み直しました。オンラインマニュアルページ要約は提供されていません)、そして次のように指定されています。

screen [ -options ] [ cmd [ args ] ]

cmd...それはとを独立した主張として扱いたいと信じていますargs

最初の引数を引用符で囲んだ値( '')として渡したので、実行したコマンドの代わりに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
 # ...

おすすめ記事