2014-02-14 3 views
0

У меня есть Баш скрипт, который отправляет много рабочих мест в кластер, это выглядит примерно так:Как записать идентификатор процесса задания (ы), запущенный в Баш скрипт

for i in `seq 1 ${MIN}` 

do 
    cd longjob_${i}/ 
    make 
    nohup ./prog.x & 
done 

prog.x является Фортран исполняемым. Я хотел бы записать pid каждой работы, так что я мог бы убить при желании задания по мере необходимости. Есть ли способ сделать это, например, записать номер pid в файл nohup.out?

+0

возможно дубликат [Получить PID процесса начался с поЬирами через SSH] (http://stackoverflow.com/ вопросы/12647382/get-the-pid-of-a-process-start-with-nohup-through-ssh) –

ответ

1

$! переменных содержит PID последнего фонового задания, которая была начата:

for i in `seq 1 ${MIN}` 
do 
    cd longjob_${i}/ 
    make 
    nohup ./prog.x & 
    echo $! >> ~/pids.txt 
done 
+0

Предположим, что я отправил задание без строки echo $! >> ~/pids.txt. Есть ли способ получить pids в этом случае? – user2820579

+0

Вы можете использовать 'ps', чтобы найти все ваши процессы. – Barmar

Смежные вопросы