Выполнение нескольких nohup управляет в фоне

Мое предположение то, что #! строка имеет некоторый странный символ на нем, возможно, ASCII Nul или другой непечатаемый символ, клавиша Backspace - что-то, возможно. Некоторые оболочки имели проблему с MS-DOS/Windows два байта (перевод строки возврата каретки) маркеры конца строки. Современные редакторы могут исследовать файлы и решить, являются ли они стилем Unix (перевод строки) конец строк, или стиль Windows (и возможно даже стиль Mac) текстовые файлы. Возможно, Вы перепутали своего редактора и выписали текстовый файл Windows.

Это заставляет ядро не находить независимо от того, что "исполняемый файл" так указан, и это утверждает, что не может выполнить несуществующий "исполняемый файл".

11
07.03.2013, 20:52
4 ответа

Вы сделали обоих cmd1 и cmd2 выполненный параллельно. Вы сказали: “Запустите cmd2 в фоновом режиме и разъедините любую связь с ним. Запустите cmd1 в фоновом режиме и разъедините любую связь с ним”. Вы имели в виду: “Запустите cmd2 в фоновом режиме; когда это будет завершено, запустите cmd1 (также в фоновом режиме)”. С тех пор больше нет никакой связи с фоновой задачей, необходимо создать фоновую задачу, которая выполняет cmd2 затем cmd1. Это cmd2; cmd1 (или скорее cmd2 && cmd1 для выполнения cmd1, только если cmd2 успешно выполняется), и необходимо будет сказать nohup запустить оболочку, работающую в фоновом режиме за этим.

nohup sh -c './cmd2 >result2 && ./cmd1 >result1' &
12
27.01.2020, 19:58
  • 1
    Спасибо. Это хорошо работает. Да, это - то, что я думал после того, чтобы заставлять первый cmd перейти к фону, это не влияет на вторую команду, которая запускается даже при том, что я хотел, чтобы это ожидало первой команды для окончания. Я должен прочитать руководство о передающей команде к фону. –  user33767 08.03.2013, 07:27

Если Вы не возражаете не использовать nohup:

{ command1 >result1 2>&1 && command2 >result2 2>&1 ; } & disown
3
27.01.2020, 19:58
  • 1
    Проверит это. Но в настоящее время будет идти с ответом от Giles, где команда перенесена с sh. Спасибо так или иначе –  user33767 08.03.2013, 07:32
  • 2
    , Это - плохая идея. Когда пользовательский выход из системы от консоли, это уничтожит сессию. –  mootmoot 08.03.2017, 11:16
  • 3
    @mootmoot это работает, как предназначено, проверьте это на себя; команды не получат SIGHUP, когда родитель окружит выходы. –  artyom 10.03.2017, 14:37
  • 4
    Да, это - оболочка, безопасная при выполнении команды с помощью crond/crontab. Но это не pty/xterm/ssh сейф. unix.stackexchange.com/questions/3886 / … –  mootmoot 10.03.2017, 14:54

Просто использование:

nohup ./cmd2>result2 & nohup ./cmd1>result1 & nohup ./cmd3>result3 &
2
27.01.2020, 19:58
  • 1
    В то время как выполнение нескольких управляет, прекрасен, я хотел поддержать точный порядок выполнения т.е. cmd2 сначала и затем cmd1, и этого не происходит с вышеупомянутой командой. спасибо –  user33767 08.03.2013, 07:29

сообщите нам то, что точно Вы делаете с cmd2 и cmd1. Это зависит от типа задачи и произвело Вас, хотят от Вашей команды. Если Вы сталкиваетесь с проблемой с ударом клавиши Enter двух раз с командой затем, это может быть фигура моим этим сообщением

можно пойти этим путем также

nohup `cmd2 && ccmd1` > Output.out 2> Error.err < /dev/null & 

Посмотрите ниже данного снимка экрана, Здесь я использую 3 команды, и все выполняются один за другим последовательно. Я использовал обратные галочки для этой задачи. В снимке экрана можно также наблюдать метку времени даты. команда сна имеет 60 секунд, следовательно после 60 секунд, моя следующая команда выполняется успешно. Я использовал команду заданий для проверки, любая команда, все еще работающая в фоне. Здесь нет. из заданий Вы видите, 1.

nohup-multiple-command

Этот снимок экрана доступен в этой ссылке также, если это не видимо

0
27.01.2020, 19:58

Теги

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