1
ответ

Команда «reboot» выводит меня из оболочки или принудительно завершает ее?

В Linux, если я запускаю команду перезагрузки из оболочки, какова последовательность событий, которые приводят к оболочке (, например. bash )отключение? Я думаю, что это один из следующих, но не уверен, какой :Это журнал...
01.04.2021
1
ответ

Есть ли способ настроить убийцу OOM Linux для уничтожения родительского, а не дочернего процесса?

Есть ли способ настроить убийцу OOM Linux для уничтожения родительского, а не дочернего процесса? Когда дочерний процесс убит, этот родительский процесс продолжает работать в плохом состоянии. Я могу определить, был ли ребенок...
28.01.2021
1
ответ

Как именно CTRL^C передает сигнал в обработку

Я пытаюсь выяснить, как именно CTRL^C отправляет SIGINT процессу. Рассмотрим псевдо-терминальную систему. Я напишу, что знаю (или думаю, что знаю, лол ), и, пожалуйста, добавьте/замените там, где нужно :В...
19.01.2021
1
ответ

Почему ловушки иногда игнорируют сигналы?

У меня есть следующий скрипт #! /USR/бин/Баш trap "{ echo bye ;}" SIGINT while :сделать эхо "Привет" done Когда я нажимаю Ctrl -c, цикл while не останавливается и эхо...
16.12.2020
1
ответ

Как создаются, удаляются, модифицируются, включаются и отключаются связи между сигналами и событиями?

В Linux при возникновении связанных событий генерируется множество сигналов. Как создаются, удаляются, модифицируются, включаются и отключаются ассоциации между сигналами и событиями? (желательно в плане...
09.12.2020
1
ответ

В чем разница между расположением по умолчанию для SIGCHLD и явным заданием расположения для SIG _IGN?

В программном интерфейсе Linux говорится: 26.3.1 Установка обработчика для SIGCHLD. Сигнал SIGCHLD отправляется родительскому процессу всякий раз, когда один из его дети оканчивают -концы. По умолчанию этот сигнал...
08.12.2020
1
ответ

Почему SIGINT не завершает остановленный процесс?

В соответствии со стандартом POSIX, касающимся сигналов (, см. раздел «Стандартные сигналы» ), и SIGKILL, и SIGINT имеют по умолчанию действие Term. Однако, похоже, это не тот случай, когда...
22.11.2020
1
ответ

Отправить сигнал приостановленному родительскому процессу и гарантировать, что он прибудет ПОСЛЕ приостановки родительского процесса

У меня есть такой псевдокод -, и я хочу знать, что я должен изменить, чтобы гарантировать, что сигнал, отправленный родителю, действительно поступит после того, как родитель приостановит работу. внутренний основной (){...
13.11.2020
1
ответ

Как безоговорочно перехватить EXIT (, даже если он прерван ), в Zsh?

Я хотел бы перехватить хук выхода функции. Bash предоставляет хороший сигнал RETURN (non -POSIX ), который вызывается при возврате функции, например функциональный тест _trap (){ trap 'эхо захвачено'...
18.10.2020
1
ответ

Сценарий дочерней оболочки не ответил на терминальное прерывание, отправленное группе процессов переднего плана

У меня есть мастер-скрипт, управляющий некоторыми сателлитными скриптами. Когда я посылаю сигнал прерывания с терминала, ловушки родителя поймали сигнал, а дочерние нет, чего я не могу понять...
16.10.2020
1
ответ

sigaction ()sa _флаги и базовая спецификация POSIX.1 -2001

Это выдержка из SIGACTION (2 ):POSIX.1 -1990, в которой указан только SA _NOCLDSTOP. POSIX.1 -2001 добавлено SA _NOCLDSTOP, SA _NOCLDWAIT, SA _NODEFER, SA _ONSTACK, SA _RESETHAND, SA _RESTART и...
06.10.2020
1
ответ

может считывать короткий счет системного вызова после того, как он был прерван сигналом?

Допустим, я вызываю read для чтения 1000 байт, и когда read читает 501-й байт, сигнал прерывает его, так что возвращает ли read 500?
02.10.2020
1
ответ

Безопасно ли перезапускать системные вызовы?

Я читал учебник, в котором описывается, как обращаться с системными вызовами, когда они прерваны. :Системные вызовы могут быть прерваны. Системные вызовы, такие как чтение, ожидание и принятие, потенциально могут блокировать...
02.10.2020
1
ответ

Ловушка SIGPIPE при записи в FIFO

Это шаги для воспроизведения проблемы. писатель :#!/бин/баш ловушка 'эхо NoReader!' ТРУБКА cat > fifo Открыть два терминала. Я буду обозначать их заголовками >T1< и >T2< ниже, и...
28.07.2020
1
ответ

Как правильно использовать подпись ()с SA _RESTART?

Я хочу разработать код C, который будет одновременно ожидать как ввода с клавиатуры, так и сигналов, -генерируемых клавиатурой, и сможет иметь другой ввод-вывод (с активными каналами и файлами ). У меня минимальный сигнал...
26.07.2020
1
ответ

определить процесс, отправляющий сигнал сценарию оболочки

Я написал сценарий оболочки, который использует функцию прерывания для вывода своего хода выполнения при получении сигнала SIGUSR1, но я не понимаю, как сделать так, чтобы сценарий мог выводить ход выполнения в STDOUT...
24.06.2020
1
ответ

Что определяет, получат ли фоновые процессы сценария сигнал SIGINT от терминала?

#!/usr/bin/env bash sleep 3 && echo '123' & спать 3 && эхо '456' & sleep 3 && echo '999' & Если я запускаю это и отправляю SIGINT, нажимая элемент управления -c через терминал, это...
21.06.2020
1
ответ

Без nohup в csh фоновое задание все еще выполняется после выхода из ssh

Я пытаюсь понять необходимость использования nohup с фоновыми командами в ssh. Моя оболочка - csh на CentOS. Приведенная ниже фоновая команда продолжает работать даже после выхода из ssh. Я ожидал этого...
11.06.2020
1
ответ

В чем разница между SIGALRM и SIGVTALRM?

Насколько я понимаю, оба используются для подачи сигнала в зависимости от прошедшего времени… Но какая тогда разница? В моем случае я хочу поднять такой сигнал против определенного времени потока, где...
21.05.2020
1
ответ

less останавливает мой сценарий; почему так и как избежать?

У меня есть этот сценарий Bash с именем s в текущем каталоге:#!/bin/bash труба _испытательная (){ (комплект -м; ($1 ); установить +м )| ($2 )} pipe _test "$1" "$2" Если я позвоню, например../с да...
20.05.2020
1
ответ

Как реализации системных вызовов Linux обрабатывают перехваченный сигнал?

Я понимаю, как работают сигналы в целом, и я понимаю, что системные вызовы изменяют состояние задачи на ЗАДАЧА _ПРЕРЫВАЕМАЯ или ЗАДАЧА _НЕПРЕРЫВНАЯ, чтобы предотвратить прерывание сигнала на критических участках....
29.04.2020
1
ответ

Почему здесь grep возвращает SIGPIPE (сигнал 13)?

Мне нужно создать программу, в которой у меня есть P0 в качестве родительского процесса и P1,...,PN дочерние процессы. Каждый дочерний элемент должен выполнять grep в файле и возвращать результат в канал. Затем P0 должен прочитать ...
21.04.2020
1
ответ

Как получилось, что «правда; сделать эхо у; сделано | правда` умирает сама по себе, но пока правда; делать эхо у | Кот; сделано | правда` нет?

Чтобы внести ясность в заглавный вопрос, я понимаю, почему первый умирает. Я не понимаю, почему последний этого не делает, просто для добавления | кот к телу петли. Также может быть связано, хотя и верно; сделать эхо у; ...
15.04.2020
1
ответ

Отладка спорадических ошибок сценария оболочки 141

При запуске сценария в CI (Gitlab, контейнер Docker под управлением Alpine Linux) я получаю спорадические сбои с сигналом 141, который, похоже, указывает на "SIGPIPE ". Но я не понимаю, что это за шаг...
15.04.2020
1
ответ

Дескриптор файла из `signalfd (2 )`никогда не готов к чтению

У меня на попечении довольно большое приложение. В рамках своей работы он порождает несколько дочерних процессов и должен отслеживать их состояние (работает, аварийно завершает работу ). Смерти дочерних процессов обнаруживались установкой сигнала...
07.04.2020
1
ответ

Маска sigprocmask ()работает неправильно?

(Извините за длинное сообщение, но я хотел быть максимально точным )Я пытался напечатать маску сигнала основного потока при написании программы на C, когда я наткнулся на что-то странное относительно...
11.03.2020
1
ответ

Как записать в фактический буфер редактирования

Я хочу, чтобы "ls" записывалась, но не выполнялась, нажатием Control+r. Я использую следующий код, но он записывает команду в буфер, который будет использоваться для выполнения после нажатия Enter. Я бы...
22.02.2020
1
ответ

Почему сигнал SIGCHLD не игнорировался при использовании функций wait()?

При использовании функций ожидания сигнал SIGCHLD потреблялся ожиданием при выполнении примера 1.1, как показано ниже. пример 1.1 if (pid==0){ printf("child\n"); printf("%d\n",pid); } else{ printf("...
29.01.2020
1
ответ

когда доставляются сигналы?

Инициирует ли отправитель сигналов переключение контекста на процесс получателя для обработки сигнала? Или получатель просто обрабатывает это, когда процесс запланирован для запуска?
26.01.2020
1
ответ

Предотвращение доступа SIGINT к подпроцессу mysql.

У меня есть сценарий perl, который косвенно вызывает mysql (для выполнения длинного сценария SQL). Я хотел бы отключить ^C во время выполнения этого скрипта, но каким-то образом сигнал все еще достигает mysql, который затем ...
24.01.2020