2012-09-06 41 views
9
$ matlab -nodesktop -nojvm & 

Làm cách nào để thực thi lệnh MATLAB trên phiên vừa được tạo?lệnh MATLAB (từ bash/dòng lệnh) trên phiên đã chạy

Nói cách khác, tôi muốn có một phiên làm việc MATLAB chạy trong nền và thực thi lệnh và/hoặc lệnh MATLAB từ một thiết bị đầu cuối tùy ý tại bất kỳ thời điểm nào mà không phải tạo phiên mới.

Trả lời

7

Tôi sẽ đề xuất giải pháp tương tự như carandraug đã làm, chỉ tôi thích tmux làm bộ ghép kênh. Nó có thể là một chút khôn lanh nhận được các lệnh thông qua một cách chính xác để tạo ra một shell-script xử lý các chi tiết.

Hãy nói rằng bạn đã bắt đầu matlab trong một thiết bị đầu cuối như thế này:

tmux new -s matlab "matlab -nodesktop -nojvm" 

Bây giờ một tmux phiên gọi MATLAB đang chạy matlab không có gui.

Tạo này vỏ kịch bản:

mx

#!/bin/bash 

if [[ $# -eq 0 ]]; then 
    while read; do 
    tmux send-keys -t matlab "$REPLY"$'\n' 
    done 
else 
    tmux send-keys -t matlab "[email protected]"$'\n' 
fi 

Trong một thiết bị đầu cuối khác nhau bây giờ bạn có thể chạy lệnh matlab trích dẫn:

mx "A = reshape(1:9, 3, 3)" 

Hoặc thậm chí vượt qua các lệnh trong thông qua một ống:

for mat in A B C; do echo "$mat = reshape(1:9, 3, 3)"; done | mx 
3

Một khả năng là bắt đầu phiên screen, sau đó bắt đầu MATLAB trên đó và tách ra khỏi nó. Bất cứ lúc nào bạn muốn sử dụng nó, chỉ cần kích hoạt một thiết bị đầu cuối và lắp lại phiên màn hình đó.

Màn hình khởi động cơ bản (chỉ cần gõ screen ở đầu cuối) và bắt đầu phiên làm việc MATLAB của bạn. Sau đó tách khỏi phiên (Ctrl + A, sau đó nhấn D) và bạn sẽ quay lại thiết bị đầu cuối của mình. Bạn có thể đóng cửa sổ không có vấn đề, bất kỳ quá trình nào bắt đầu trên màn hình sẽ tiếp tục chạy. Bất cứ khi nào bạn muốn nhận lại nó (nó được gọi là gắn lại phiên), chỉ cần sử dụng screen -r. Hãy xem trang hướng dẫn cho tất cả các tùy chọn khác.

Lưu ý rằng phiên màn hình có thể có bất kỳ số lượng cửa sổ nào và bạn cũng có thể có nhiều phiên màn hình cùng một lúc. Hãy may mắn tại một số hướng dẫn trực tuyến, nó là một công cụ cực kỳ hữu ích, đặc biệt nhưng không chỉ, nếu bạn kết nối rất nhiều với các hệ thống khác có thể cần phải chạy các công việc dài.

Các vấn đề liên quan