Вопрос:

Windows 10, убить дочерний процесс, не может получить правильный PID

node.js bash shell cmd terminal

132 просмотра

1 ответ

75 Репутация автора

Я использую win10, если это имеет значение, в bash (git)

У меня есть сценарий SH:

start node ./e2e-tests/apimocker_runner.js & pid1=$!
start npm run protractor -- --binaryPath=./build/appInstaller/win-unpacked/ & pid2=$!

sleep 10
kill $pid1
kill $pid2

когда я пытаюсь убить процессы с помощью pid, у меня появляется ошибка:

bash: kill: (6616) - No such process

Как я знаю, у $!нас есть последний дочерний процесс pid, но это не работает.

Потому что тогда я печатаю в Bash:

start bash & pid=$!
echo $pid

$ pid === 1000 (например)

но если я наберу

echo $$

В созданном Bash по предыдущей команде у меня есть другой PID

$$ ==== 1200 (например)

Также я обнаружил, что если я наберу start bashэтот процесс создания не дочерний, но я хочу создать дочерний процесс и ждать их какwait $pid

Как я могу это сделать?

Автор: artofatih Источник Размещён: 22.08.2016 08:26

Ответы (1)


0 плюса

106272 Репутация автора

Переменная, установленная в одном bashэкземпляре, не видна в другом bashэкземпляре, который не является его дочерним процессом (и только тогда, если родительский объект export variableпредоставил его дочерним процессам ).

Автор: tripleee Размещён: 23.08.2016 03:30
Вопросы из категории :
32x32