Запоминание настроек внешнего монитора

Чтобы сохранить идентификатор процесса утилиты, запустите его как асинхронный процесс и сохраните его PID в переменной или используйте $! напрямую (это PID последнего запущенного фонового процесса):

#!/bin/bash

export DALTON_TMPDIR=/mnt/raid0/scratch
export OMP_NUM_THREADS=6
source /opt/intel/compilers_and_libraries_2017.0.098/linux/bin/compilervars.sh intel64
source /opt/intel/mkl/bin/mklvars.sh intel64

printf 'Started at "%s"\n' "$(date)"

SECONDS=0
./application.sh -mb 14550 input.mol output.out &

app_pid="$!"

printf 'Application PID is %d\n' "$app_pid"

wait "$app_pid"

printf 'Ended at "%s"\n' "$(date)"
printf 'Run time was approximately %d minutes (%d seconds)\n' "$(( SECONDS/60 ))" "$SECONDS"

PID приложения — $app_pid.


Вы говорите, что заметили, что PID новых процессов всегда больше, чем у предыдущих процессов. Это не то, на что вы можете положиться, по двум причинам:

  1. Когда максимально допустимый PID будет выделен процессу, произойдет циклическое выделение PID, и старые PID начнут использоваться повторно. Следующий PID будет меньше, а не больше, чем предыдущий PID, когда произойдет перенос (и новые PID после этого будут пропускать числа, которые все еще используются в качестве PID запущенными процессами).
  2. Некоторые системы, такие как OpenBSD, используют случайное распределение PID:

     $ для i в {1..5}; сделать bash -c 'эхо $$'; Выполнено
    49915
    2152
    61168
    87739
    95187
     

В качестве примечания: вы можете использовать $PWD вместо $(pwd), чтобы получить текущий рабочий каталог.

1
16.11.2017, 14:04
0 ответов

Теги

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