Поддержание работы Subshell в фоновом режиме

Otra opción es usar superformat, que formateará el disquete y creará un sistema de archivos DOS con los parámetros apropiados (usando mtoolsmformat); por ejemplo,

superformat /dev/fd0 hd

para formatear un disco de 1440K.

Sin embargo, incluso fdformatdebería poder verificar su disquete formateado sin problemas, por lo que hay algo más mal en alguna parte...

1
12.07.2017, 19:44
3 ответа

( Вопрос был отправлен мной почти три года назад. Осмелюсь сказать, что тем временем я стал лучше писать сценарии оболочки -Недавно я столкнулся с похожей проблемой и снова вспомнил об этом вопросе.)

Итак, как было сказано в предыдущем комментарии, все, что мне нужно было использовать, это screen. Но поскольку у меня не было доступа к сочетаниям клавиш, когда я запускал код в кластере, я не мог использовать Ctrl + A, чтобы вернуться к телу моего основного скрипта, как предполагалось в ответе.

Ну, все, что мне нужно было сделать, это начать screenв фоновом режиме вот так:

Запуск экрана с образцом имени экрана -в автономном режиме от основного сценария.

screen -S sample-screen -d -m

Попросить отсоединенный экран запустить команду, не -прикрепляя ее.

screen -S sample-screen -p 0 -X stuff "./script1.sh & ^M"

^M— символ возврата. Сродни нажатию ввода на отдельном экране.

Убить экран при выходе из скрипта-

screen -XS sample-screen quit

0
28.04.2021, 23:59

Похоже, задание, которое вы отправляете, должно выполнять обе задачи.

#!/bin/sh
license </dev/null >license.out 2>&1 &
license_pid=$!
simulator
kill $license_pid
wait $license_pid

Это сохраняет стандартный вывод и стандартные ошибки процесса лицензирования в файл, чтобы вы могли tailувидеть, что он хочет вам сказать, если возникнет проблема.

3
28.04.2021, 23:59

Не можете ли вы sshперейти к узлу, а затем запустить копию screen? Взгляните на страницу руководства. Это позволяет вам иметь две или более сессий в качестве (эффективных )подпроцессов вашей sshоболочки входа в систему.

Итак, sshкак обычно. Пуск screen. Введите Ctrl-A , а затем c , чтобы создать второй экран. Запустите лицензию на этом экране, затем используйте Ctrl-ACtrl-A , чтобы вернуться к исходному экрану. Запустите свое приложение там. Используйте последовательность Ctrl-ACtrl-A для переключения вперед и назад, если это необходимо.

Чтобы отсоединиться без завершения, используйте Ctrl-ACtrl-d ; чтобы повторно подключиться позже (даже после завершения сеанса sshи повторного входа в систему, используйте screen -x.

2
28.04.2021, 23:59

Теги

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