切り離された画面セッションを開始する


8

画面分離セッションを開始したいのですが、bashを評価したいと思います。画面は実行可能ファイルとバイナリのみをサポートしているようです。私は次のような魔法をかけたいです:

screen -d -m script.sh 2>&1 | tee logfile.log

しかし、これは明らかに機能しません。引用はここでは役に立ちません。私が持っている唯一のアイデアは、このリダイレクトを行うラッパースクリプトを作成して、次のように直接呼び出すことです。

screen -d -m wrapper_script.sh

他のアイデアは?ありがとう。

回答:


8

スクリーンでbashシェルを実行して、スクリプトを実行することもできます。

私はこれをテストしました:

screen -d -m bash -c 'vmstat 5 3 2>&1 | tee logfile.log'

これは私にこれを与えました:

kenny@t520:~$ cat logfile.log 
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 5864764 103072 884512    0    0    66    36 1236 1818 17  6 77  0
 0  0      0 5864252 103072 884512    0    0     0     0  311  574  1  1 98  0
 1  0      0 5861532 103080 884512    0    0     0     4 1244 2302  4  2 94  0

だからこれもうまくいくはずです:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'

ああ、私はこれを試していましたが、タイプミスがありました!どうもありがとう。
lzap

4

-Lログに書き込むための画面オプションを指定してみましたか?

ファイルを使用してログの名前を指定することもできます~/.screenrc-例として、私のコンテンツを次に示します。

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on

ありがとう、それもそれで十分です!賛成票を投じますが、ケニーズの答えはより一般的です。ありがとうございました。
lzap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.