Как я могу использовать nohup для запуска процесса в качестве фонового процесса в Linux?
Я использую эту команду для выполнения моей работы.
(time bash executeScript 1 input fileOutput $> scrOutput) &> timeUse.txt
Пока, 1 - это ряд процессов, которые я использую для выполнения этой работы. Я должен изменить количество процессов для каждого прогона. В каждый раз он использует длительное время для завершения. Затем я хочу запустить его как фоновый процесс.
Как я могу это сделать?
Я пробовал:
nohup ((time bash executeScript 1 input fileOutput $> scrOutput) &> timeUse.txt)
Но это не сработает.
Ответы
Ответ 1
В общем, я использую nohup CMD &
для запуска фонового процесса nohup. Однако, когда команда находится в форме, которую nohup
не примет, я запускаю ее через bash -c "..."
.
Например:
nohup bash -c "(time ./script arg1 arg2 > script.out) &> time_n_err.out" &
stdout из script записывается в script.out
, а stderr и вывод time
переходит в time_n_err.out
.
Итак, в вашем случае:
nohup bash -c "(time bash executeScript 1 input fileOutput > scrOutput) &> timeUse.txt" &
Ответ 2
Вы можете написать script, а затем использовать nohup ./yourscript &
для выполнения
Например:
vi yourscript
ставить
#!/bin/bash
script here
вам также может потребоваться изменить разрешение на запуск script на сервере
chmod u+rwx yourscript
наконец,
nohup ./yourscript &
Ответ 3
-
Используйте экран: Запустите screen
, запустите свой script, нажмите Ctrl + A, D. Повторите попытку с помощью screen -r
.
-
Сделайте script, который принимает ваш "1" в качестве параметра, запустите nohup yourscript
:
#!/bin/bash
(time bash executeScript $1 input fileOutput $> scrOutput) &> timeUse.txt