Отправьте несколько сигналов уничтожения в процесс

Скажите, что я выполняю a .sh процесс. И теперь я открываю новую терминальную вкладку, и я хочу отправить сигналы в нее для этого, я просто использую, уничтожьте:

kill -*signal number* *pid*

правильно? Но я хочу отправить 13 сигналов одновременно, как я могу сделать это?

0
задан 13 October 2018 в 05:17

1 ответ

Вы не можете отправить 13 сигналов сразу, но должны циклично выполниться по некоторому списку сигналов. Следующий сценарий сделает так:

#!/usr/bin/env bash

pid=${1-""}

if [ -z "$pid" ]; then
    echo "a pid must be given";
    exit 1;
fi

siglist=(
    SIGSTOP SIGCONT SIGSTOP SIGCONT SIGSTOP SIGCONT
    SIGSTOP SIGCONT SIGSTOP SIGCONT SIGSTOP SIGCONT
    SIGTERM
)

for sig in "${siglist[@]}"; do
    kill -$sig $pid;
done

exit 0;

Сохраните сценарий как send-sigs.sh, подать заявку chmod +x send-sigs.sh и затем назовите его как так:

./send-sigs.sh 1234

Я использовал ОСТАНОВКУ сигналов и ПРОДОЛЖЕНИЕ СЛЕДУЕТ поочередно замораживаться и таять данный pid, но можно использовать различные сигналы для симпатии. Но знайте, что некоторые сигналы могли бы остановить Ваш целевой процесс, таким образом, он не получит сигналов впоследствии.

3
ответ дан 27 October 2019 в 08:08

Другие вопросы по тегам:

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