次の内容を含むKickstartスクリプトを使用してScientific Linux 7をインストールしています(ただし、これがすべてのRHELブランチに当てはまらないと思う理由はありません)。
%post --interpreter /bin/bash --log /root/postinstall.log
# do stuff
%end
インストール後、期待どおりにログファイルが確認されます。
ただし、SL 6ではTTY 2に変更してtail -f /mnt/sysimage/root/postinstall.log
。
この進捗状況を監視する方法はありますか?/tmp/
、、、で/var/log/
ログファイルを見つけましたが、/mnt/sysimage/tmp/
何/mnt/sysimage/var/log/
の成果もありませんでした。ログファイルが利用できない場合、キックスタートインストール後にスクリプトを使用して出力を別のTTYに送信できますか?
1を試してください:
%post --interpreter /bin/bash
(
# do stuff
echo foo
echo bar
echo baz
) | tee /root/postinstall.log > /dev/tty1
%end
これはほとんどうまくいきますが、行末が問題のようです。 CR以外のLFのみが画面上で実行されます。 TTY1の上記出力は次のとおりです。
foo
bar
baz
2回試してください:
%post --interpreter /bin/bash --log /root/postinstall.log
echo "Changing output to TTY 3; press Alt-F3 to view" > /dev/tty1
exec 1>/dev/tty3 2>&1
#do stuff
%end
これにより、データが画面に正しく出力されますが、何も記録されません。また、スクリプトが完了した後に再起動が約10分遅れるという奇妙な副作用もあります。
答え1
出力を/dev/pts/0にリダイレクトします。
答え2
ついにそれを見つけました:
%post --interpreter /bin/bash
printf "Changing output to TTY 3; press Alt-F3 to view\r\n" > /dev/tty1
{
# do stuff
} 2>&1 | tee /root/postinstall.log > /dev/tty3
%end
質問で述べたよう/dev/tty1
に、画面に行末の問題があるように見えるので、その画面にリダイレクトすると最初の試みが機能する可能性があります/dev/tty3
。ただし、このソリューションはサブシェルを回避し、STDERRもリダイレクトします。
答え3
exec < /dev/tty6 > /dev/tty6
chvt 6
<scripts here>
chvt 1
これは私にとって効果的です。 ttyを反転することなく%postを監視できます。
答え4
問題はキャリッジリターンにあります。
echo "message" >/dev/tty1
試してみてください
echo -e "message\r" >/dev/tty1