Как сохранить выполнение внутреннего сценария оболочки, пока заканчивается основной сценарий оболочки? - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь создать один сценарий, который проверяет наличие запущенного процесса и запускает его, если он не запущен.

Вот test. sh

#!/bin/bash
if pgrep infiloop > /dev/null ;
  then
  echo "Process is running."
else
   exec /u/team/infiloop.sh > /u/team/infiloopOutput.txt
  echo "Process was not running."
fi

И infil oop. sh

#!/bin/sh

while true
do
 echo "helllo"
 sleep 2
done

Теперь, когда я запускаю 1-й скрипт, он запускает скрипт, но после его запуска не позволяет мне запустите другую команду.

Вывод:

[user@host ~]$ ./checkforRunningJob.sh

^C

Мне нужно нажать Ctrl + C, Ctrl + Z, и как только я это сделаю, мой бесконечный скрипт также остановится .

Не могли бы вы проверить.

Спасибо.

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете поместить процесс в фоновый режим с помощью &:

#!/bin/bash

if pgrep infiloop > /dev/null ;
then
    echo "Process is running."
else
    exec /u/team/infiloop.sh > /u/team/infiloopOutput.txt &
    echo "Process was not running, started process $!"
fi

...