9
$ matlab -nodesktop -nojvm &

作成したばかりのセッションで matlab コマンドを実行するにはどうすればよいですか?

つまり、バックグラウンドで matlab セッションを実行し、新しいセッションを作成することなく、いつでも任意の端末から matlab コマンドやスクリプトを実行したいと考えています。

4

2 に答える 2

8

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
于 2012-09-06T20:23:49.763 に答える
3

可能性としては、screenセッションを開始してから、その上で matlab を開始し、そこから切り離すことができます。使いたいときはいつでも、端末を起動してその画面セッションを再接続するだけです。

基本的に、画面を開始し (screenターミナルで入力するだけ)、matlab セッションを開始します。次に、セッションから切り離し ( Ctrl+のA後に を押すD)、端末に戻ります。問題なくウィンドウを閉じることができます。画面上で開始されたプロセスは引き続き実行されます。もう一度取得したいときはいつでも(セッションの再アタッチと呼ばれます)、使用するだけscreen -rです。他のすべてのオプションについては、man ページを参照してください。

スクリーン セッションは任意の数のウィンドウを持つことができ、同時に複数のスクリーン セッションを持つこともできることに注意してください。オンラインのいくつかのチュートリアルで頑張ってください。これは非常に便利なツールです。特に、長時間のジョブを実行する必要がある可能性のある他のシステムに多く接続している場合だけではありません。

于 2012-09-06T19:26:18.093 に答える