Как передать входные данные скрипту, запущенному с помощью nohup?

У меня есть скрипт, работающий на моем сервере, скажем, test .sh . Я выполнил его с помощью следующей команды -

nohup test.sh

Теперь я хочу передать в этот скрипт вход quit , чтобы он корректно завершал себя (скрипт создает много временных файлов , если вы передадите команду quit , она удалит их все, а затем завершит сама)

Я знаю PID процесса, но как передать команду этому PID?

1
задан 9 June 2020 в 09:12

1 ответ

Если это скрипт bash, вы можете использовать сигнал.

Например, этот скрипт будет перехватывать сигнал SIGUSR1, выполните очистку и выйдите. Если сигнал не получен, он закончится через 60 секунд:

#!/bin/bash

function graceful_exit()
{
  echo "Graceful exit..."
  # your cleanup commands
  exit 0
}

trap graceful_exit USR1

sleep 30 & wait $!

echo "Normal exit"

Итак, вы запускаете скрипт:

$ nohup script.sh

Затем вы отправляете сигнал SIGUSR1 с kill , используя указанный вами PID:

$ kill -SIGUSR1 PID
2
ответ дан 19 June 2020 в 21:29

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

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