Выполненная Команда использования Приложения, не блокируя Терминал

Я сделал некоторую команду (в/usr/bin) для Запуска Приложения как Matlab, Weka и т.д. в Ubuntu 18.04 LTS. При использовании команды Matlab это содержит Терминал, пока я не закрываю Matlab или Terminal (если я закрываю Терминал, Matlab, также закрытый). Как я могу избежать этой проблемы, которая означает, что команда Matlab не будет содержать терминал при работе?Спасибо.

Следующий Формат работал прежде, но внезапно не работа.

#!/bin/bash

setsid /usr/local/MATLAB/R2018a/bin/matlab </dev/null >/dev/null 2>&1 & disown

Теперь Matlab просто открывают логотип, но никакое продолжение дальнейшей работы....

1
задан 20 February 2019 в 03:28

1 ответ

В этом случае nohup [CMD] & хорошая альтернатива. nohup освобождает команду от терминала, выполняющего его, и делает его неуязвимым для терминальных зависаний.

Кроме того, команда, которую Вы отправили, открывает новую сессию и сразу отправляет EOF с </dev/null который вынуждает matlab не принять любой вход от терминала. Это могло бы быть проблемой в зависимости от того, как данная программа выполняется после открытия. Я также не думаю disown служит любой цели здесь, как и выполняет его в фоновом режиме, и setsid должен освободить его от терминала. disown не разъединяет программу от терминала, она только удаляет его из списка задания. В любом случае я использовал бы nohup [CMD] & как это делает

1) разделите программу от терминала, выполняющего его

2) вход стандарта завершений

3) перенаправления stdout и stderr в отдельный файл для исследования вместо того, чтобы просто отправить его в /dev/null пропасть

4) & в конце помещает его в фоновом режиме

0
ответ дан 7 December 2019 в 21:17

Другие вопросы по тегам:

Похожие вопросы: