На моей Linux-машине есть двоичный скрипт (называемый transferNames.bin)
Проблема в том, что когда я запускаю transferNames.bin с зависшим сценарием & и не возвращаюсь к приглашению Linux «#», даже если я жду 1 день или более (поэтому я не могу продолжить работу на своем Linux, потому что он завис) Пример:
[root@linux1 tmp]# ./transferNames.bin &
Transferring..
также различный способ:
[root@linux1 tmp]# ( /tmp/transferNames.bin ) &
Transferring..
примечание - скрипт transferNames.bin работает нормально, и я не могу его редактировать
Мой вопрос, пожалуйста, посоветуйте, могу ли я запустить ./transferNames.bin &
на другой оболочке - как это сделать?
Чтобы избежать застревания? Или любое другое решение для запуска ./transferNames.bin и в другой оболочке? или любое другое мнение?
Я думаю, что ваш скрипт ожидает чего-то от стандартного ввода, как сказал stew, и поэтому он приостанавливается, когда вы запускаете его с помощью &, потому что в фоновом режиме стандартный ввод закрывается оболочкой.
Если вам нужно запустить этот сценарий на сервере и сделать что-нибудь еще с этой оболочкой или просто выключить компьютер и пойти домой, вы можете попробовать программу SCREEN. Он присутствует в большинстве дистрибутивов Linux, и вы можете использовать его следующим образом:
screen
(откроется новая оболочка)
/tmp/transferNames.bin
Скрипт запустится как обычно. Теперь вы можете нажать эту комбинацию клавиш: ctrl-a + d. И вы будете "отключены" от ЭКРАНА. Теперь вы можете выйти из системы и вернуться домой, скрипт по-прежнему будет работать. Когда вы вернетесь и захотите проверить вывод скрипта, вы войдете на сервер и запустите эту команду:
screen -r
это будет повторно подключено к этому сеансу SCREEN, как будто ничего не произошло.
Надеюсь это поможет