Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Фоновый дочерний процесс удаляется после завершения родительского?  (Прочитано 598 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Electricity

  • Автор темы
  • Активист
  • *
  • Сообщений: 250
    • Просмотр профиля
Здравствуйте.

Вот такая конструкция watchdog timer, защита от зависания:

#!/bin/bash
{
    sleep 5m
    kill $$
} &
# ...

Возможен вариант, если скрипт закончит работу без timeout, операционка создаст другой процесс, и сия фоновая процедура его прибьёт?
Да и потом. Может ли дочерний (блок) убить родительсткий?
Kubuntu 18.04 amd64, Qt: 5.9.5, KDE Frameworks: 5.44.0, plasmashell 5.12.7, корпус чёрный, клава белая

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Вот такая конструкция watchdog timer, защита от зависания:
От зависаний кого и чего собираетесь защищаться?
Не нужно такое добро никому.

Да и потом. Может ли дочерний (блок) убить родительсткий?
Может конечно. Послав сигнал по PID.

P.S. Вы бы сначала разобрались с работой процессов в системе ... а уже потом боролись бы с зависаниями. :2funny:

Оффлайн Electricity

  • Автор темы
  • Активист
  • *
  • Сообщений: 250
    • Просмотр профиля
Текущая реализация:

{
    sleep ${timeout_get_question}s
        rm $path_dir_semafore/$app-$PID # Удаляем свой семафор и
    kill $PID # прибиваем текущий процесс
} &
bgpid=$! # id процесса в бэкграунде

content=$(torsocks wget --user-agent="$ua" --no-cache -q -O - "$uri" 2>/dev/null)
# Здесь он может виснуть

rm $path_dir_semafore/$app-$PID
kill $bgpid
Kubuntu 18.04 amd64, Qt: 5.9.5, KDE Frameworks: 5.44.0, plasmashell 5.12.7, корпус чёрный, клава белая

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.