Я сделал некоторую команду (в/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 просто открывают логотип, но никакое продолжение дальнейшей работы....
В этом случае nohup [CMD] &
хорошая альтернатива. nohup
освобождает команду от терминала, выполняющего его, и делает его неуязвимым для терминальных зависаний.
Кроме того, команда, которую Вы отправили, открывает новую сессию и сразу отправляет EOF с </dev/null
который вынуждает matlab не принять любой вход от терминала. Это могло бы быть проблемой в зависимости от того, как данная программа выполняется после открытия. Я также не думаю disown
служит любой цели здесь, как и выполняет его в фоновом режиме, и setsid должен освободить его от терминала. disown
не разъединяет программу от терминала, она только удаляет его из списка задания. В любом случае я использовал бы nohup [CMD] &
как это делает
1) разделите программу от терминала, выполняющего его
2) вход стандарта завершений
3) перенаправления stdout и stderr в отдельный файл для исследования вместо того, чтобы просто отправить его в /dev/null
пропасть
4) &
в конце помещает его в фоновом режиме