1

У меня есть скрипт на Mac Mac Server, который медленно загружает файл размером в несколько гигабайт. Я хотел бы запустить этот скрипт через SSH с другого (linux) сервера с ssh mac-server 'nohup /path/to/script arguments' но сразу же разорвать соединение SSH, как только узнаю, что скрипт успешно запущен. После запуска SSH-соединение не служит какой-либо полезной цели, систематически завершается сбоем где-то во время загрузки и блокирует выполнение на сервере Linux.

Я не могу просто выполнить ssh -f или ssh & потому что мне нужна команда для сбоя на сервере Linux, если скрипт не запускается (или если Mac недоступен).

1 ответ1

1

Этот вопрос был подробно описан в ServerFault.

Подводя итог, было найдено 2 решения:

  1. Используйте nohup для запуска асинхронной задачи + закрытия файловых дескрипторов:

    exec 0>&- # close stdin
    exec 0<&- 
    exec 1>&- # close stdout
    exec 1<&- 
    exec 2>&- # close stderr 
    exec 2<&- 
    
  2. Используйте screen -d -m для запуска асинхронной задачи. Затем его можно проверить (с помощью screen -ls) или подключить позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .