画面分離セッションを開始したいのですが、bashを評価したいと思います。 screenは実行可能ファイルとバイナリのみをサポートしているようです。私は次のような魔法をかけたいです:
screen -d -m script.sh 2>&1 | tee logfile.log
しかし、これは明らかに機能しません。ここでは引用は役に立ちません。私が持っている唯一のアイデアは、このリダイレクトを行うラッパースクリプトを作成して、次のように直接呼び出すことです。
screen -d -m wrapper_script.sh
他のアイデアはありますか?ありがとう。
画面でbashシェルを実行し、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'
ログに書き込むために-L
画面オプションを指定してみましたか?
ファイル~/.screenrc
を使用してログの名前を指定することもできます-例として私の内容を次に示します。
defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on