Как убить сценарий, запущенный через SSH, когда локальный сценарий bash убит [duplicate]

0
27.07.2017, 12:15
1 ответ

Это потому, что exec.sh является локальным и выполняет команду на удаленной машине. Итак, если вы убьете локальный процесс, удаленный процесс все равно будет работать.

Чтобы достичь того, что вы хотите, вам нужно, чтобы exec.sh ловил СИГНАЛ нажатия CTRL+C и перед самоуничтожением уничтожал команду на удаленном хосте.

function trap_ctrlc ()
{
# kill the remote process
  ssh user@pass "pkill -9 python"

  exit 2 
}

# initialise trap to call trap_ctrlc function
# when signal 2 (SIGINT) is received
trap "trap_ctrlc" 2

your script here

Осторожно :python — очень общий процесс для уничтожения. ID процесса лучше сохранять при запуске, а потом специально убивать по ID

1
28.01.2020, 02:45

Теги

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