Попытайтесь использовать ssh
escape-последовательность завершения соединения.
В ssh
сессия, войти ~.
(точка тильды). Вы не будете видеть символов, когда Вы введете их, но сессия сразу завершится.
$ ~.
$ Connection to me.myhost.com closed.
От man 1 ssh
The supported escapes (assuming the default ‘~’) are:
~. Disconnect.
~^Z Background ssh.
~# List forwarded connections.
~& Background ssh at logout when waiting for forwarded
connection / X11 sessions to terminate.
~? Display a list of escape characters.
~B Send a BREAK to the remote system (only useful for SSH protocol
version 2 and if the peer supports it).
~C Open command line. Currently this allows the addition of port
forwardings using the -L, -R and -D options (see above). It also
allows the cancellation of existing remote port-forwardings using
-KR[bind_address:]port. !command allows the user to execute a
local command if the PermitLocalCommand option is enabled in
ssh_config(5). Basic help is available, using the -h option.
~R Request rekeying of the connection (only useful for SSH protocol
version 2 and if the peer supports it).
В целом это должно быть прекрасным, чтобы сделать это этот путь.
Когда Вы нажимаете "X" для закрытия окна терминала, которое отправляет "сигнал" от рабочего стола (GNOME, KDE, и т.д.) к терминальному приложению, говоря ему завершить работу себя. Так как Вы выполняете MATLAB в этой оболочке, это рассмотрело дочерний процесс к терминальному приложению.
Так часть обязанностей того, чтобы быть родительским процессом, то, что Вы в свою очередь отправляете этот тот же близкий "сигнал" своим детям.
Теперь, если Вы понимаете концептуально, что я просто объяснил затем, давайте займем место в немного большем количестве реальной терминологии.
Сначала с "сигналом", существует на самом деле вся семья различных сигналов, что можно отправить к процессам Unix. Для хранения этого простым существуют 4, что Вы будете часто видеть, SIGHUP
, SIGTERM
, SIGINT
, и SIGKILL
.
SIGHUP
Сигнал SIGHUP отправляется в процесс, когда его терминал управления закрывается. Это было первоначально разработано для уведомления процесса относительно отбрасывания последовательной линии. В современных системах этот сигнал обычно означает, что управление псевдотерминалом или виртуальным терминалом было закрыто.
SIGTERM
Сигнал SIGTERM является универсальным сигналом, используемым для порождения завершения программы. В отличие от SIGKILL, этот сигнал может быть заблокирован, обработан и проигнорирован. Это - нормальный способ вежливо попросить, чтобы программа завершилась.
SIGINT
SIGINT (“прерывание программы”) сигнал отправляется, когда пользователь вводит символ INTR (обычно C-c).
SIGKILL
Сигнал SIGKILL используется для порождения непосредственного завершения программы. Это не может быть обработано или проигнорировано и поэтому всегда фатальное. Также не возможно заблокировать этот сигнал.
Примечание: SIGINT
то, что отправляется, когда Вы используете Ctrl+C для "повреждения" программы из командной строки, в то время как это посреди выполнения.
Скорее всего, SIGTERM
называется Вашей оконной средой и переданной к Вашему терминалу. Ваш терминал затем, скорее всего, затем отправляет SIGHUP
вниз к MATLAB. Этот сигнал дает всем процессам возможность сделать любую локальную очистку (заключительные файлы, заканчивая процессы, и т.д.) сами.
Можно отправить сигналы сами с помощью плохо именованной команды, kill
. Таким образом отправить SIGTERM
предупредите к своему терминалу или SIGHUP to MATLAB, you could determine their PID using
PS и затем выполненный эта команда, чтобы отправить им сигнал:
$ kill -SIGTERM <PID>
или это:
$ kill -SIGHUP <PID>
Можно получить полный список сигналов с помощью этой команды:
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
...
...
Заметьте, что сигналы имеют числа? Вы часто будете времена видеть их используемый как этот вместо их именами:
$ kill -15 <PID>
Или печально известное -9
, который может уничтожить в значительной степени любой процесс.
Это, скорее всего, в порядке, но Вы потеряете данные в зависимости от того, какие приложения Вы имеете открытый. Например, если у Вас есть открытый редактор файлов, можно потерять некоторые изменения, если Вы не сохраняете и выходите правильно. Если Вы волнуетесь, просто выходите из системы/выходите терминал правильно. Если Вам не нравится вводить exit
или logout
просто попробуйте Ctrl-D
.