$ matlab -nodesktop -nojvm &
作成したばかりのセッションで matlab コマンドを実行するにはどうすればよいですか?
つまり、バックグラウンドで matlab セッションを実行し、新しいセッションを作成することなく、いつでも任意の端末から matlab コマンドやスクリプトを実行したいと考えています。
carandraugが行ったのと同様のソリューションを提案しますが、マルチプレクサとして私が好むだけtmux
です。コマンドを正しく渡すのは少し難しいかもしれないので、詳細を処理するシェルスクリプトを作成してください。
matlab
次のような端末で開始したとしましょう。
tmux new -s matlab "matlab -nodesktop -nojvm"
現在、matlab というtmux
セッションが GUI なしで matlab を実行しています。
このシェル スクリプトを作成します。
メキシコ
#!/bin/bash
if [[ $# -eq 0 ]]; then
while read; do
tmux send-keys -t matlab "$REPLY"$'\n'
done
else
tmux send-keys -t matlab "$@"$'\n'
fi
別のターミナルで、引用された matlab コマンドを実行できるようになりました。
mx "A = reshape(1:9, 3, 3)"
または、パイプを介してコマンドを渡すこともできます。
for mat in A B C; do echo "$mat = reshape(1:9, 3, 3)"; done | mx
可能性としては、screenセッションを開始してから、その上で matlab を開始し、そこから切り離すことができます。使いたいときはいつでも、端末を起動してその画面セッションを再接続するだけです。
基本的に、画面を開始し (screen
ターミナルで入力するだけ)、matlab セッションを開始します。次に、セッションから切り離し ( Ctrl+のA後に を押すD)、端末に戻ります。問題なくウィンドウを閉じることができます。画面上で開始されたプロセスは引き続き実行されます。もう一度取得したいときはいつでも(セッションの再アタッチと呼ばれます)、使用するだけscreen -r
です。他のすべてのオプションについては、man ページを参照してください。
スクリーン セッションは任意の数のウィンドウを持つことができ、同時に複数のスクリーン セッションを持つこともできることに注意してください。オンラインのいくつかのチュートリアルで頑張ってください。これは非常に便利なツールです。特に、長時間のジョブを実行する必要がある可能性のある他のシステムに多く接続している場合だけではありません。