Intel:リモート・サーバーに SSH ログインしてコンパイルする際、接続断した後もコンパイルを継続させることはできますか?
カテゴリ:Quartus®
ツール:Quartus® Prime
デバイス:-
SSH で作業をする場合、通信が途絶えると実行中の処理が終了してしまうため、FPGA のコンパイルなど、比較的実行時間が長い作業を行う場合は、screen を使用すると接続断後もセッションが継続するため便利です。
手順は以下となります。
※ Windows マシンから Linux サーバーに対して teraterm で SSH 接続して作業するシーンを想定
1.tereterm 等による SSH 接続
2.Linux サーバー上で screen 実行
$ screen
3.pid の 確認。以下のような出力を得る
$ screen -ls
There are screens on:
19451.pts-3.tscomp (Attached)
2 Sockets in /var/run/screen/S-tscomp03.
4.FPGA のコンパイル
$ aoc -v --report device/vector_add.cl -o vector_add.aocx --board a10_ref
5.SSH 接続断
tereterm を終了
6.tereterm 等による SSH 再接続
7.セッションの確認
$ screen -ls
There is a screen on:
19451.pts-3.tscomp (Detached)
1 Socket in /var/run/screen/S-tscomp03.
先ほどのセッションに誰もアタッチしていないことが確認できる
8.セッションにアタッチして作業再開
$ screen -r 19451
なお、ログの取得に関してもお客様から問い合わせいただくことがあります。
これについては複数の方法があり、弊社で比較的よく使用する方法としては、コマンド実行時に以下を実行してコマンドの実行結果を標準入出力へ表示すると同時にファイルに落とす方法となります。
[cmd] 2>&1 | tee result.txt
※[cmd] が コマンド( FPGA のコンパイル )のイメージ
この手法を使用する理由としては、保持するファイル名を実行のたびに変える必要あるものの、ログとしては管理しやすいためですが、ここについてはお客様の運用方法にあったものを選択ください。