1

Когда запускаете несколько серверов по pssh, здесь используйте

pssh -h hosts-file -A -I script.sh

в script.sh он содержит несколько команд Java,

после команды, я хочу завершить весь процесс, здесь используйте:

pnuke -h hosts-file -A script.sh

но при повторном запуске процесса он показывает, что некоторые порты были использованы (команда java использует некоторые порты, поэтому это означает, что процесс java все еще работает на каждом сервере).

[1] 10:43:39 [FAILURE] student@10.18.6.204:22 Exited with error code 1
[2] 10:43:39 [FAILURE] student@10.18.6.202:22 Exited with error code 1
[3] 10:43:39 [FAILURE] student@10.18.6.203:22 Exited with error code 1

Итак, как завершить все параллельные процессы Java на главном сервере? Таким образом, не нужно входить в каждый сервер, чтобы убить их.

3 ответа3

0

Похоже, что ваша команда pnuke неверна, pnuke не принимает скрипт для отправки на стандартный ввод так же, как pssh .

Источник: https://www.mankier.com/1/pnuke

0

Вот используйте это:

pnuke -h hosts-file -A java

может завершить все процессы Java на каждом сервере

0

Ты можешь попробовать:

SSHPASS=`ssh-askpass` PARALLEL_SSH='sshpass ssh' parallel --slf hosts-file script.sh

GNU Parallel должен убивать удаленно работающие задания, когда родитель умирает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .