У меня есть скрипт, работающий на моем сервере, скажем, test .sh
. Я выполнил его с помощью следующей команды -
nohup test.sh
Теперь я хочу передать в этот скрипт вход quit
, чтобы он корректно завершал себя (скрипт создает много временных файлов , если вы передадите команду quit
, она удалит их все, а затем завершит сама)
Я знаю PID процесса, но как передать команду этому PID?
Если это скрипт 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