[freebsd] сигнал для процесса
Eugene Grosbein
eugen at grosbein.net
Wed Jun 30 22:43:45 EEST 2021
01.07.2021 2:32, Eugene Grosbein пишет:
> В FreeBSD можно посмотреть состояние блокировок сигналов запущенного процесса:
>
> # ps -wo pid,sigmask,sigignore,command -p 53667
> PID BLOCKED IGNORED COMMAND
> 53667 0 18788002 /usr/local/sbin/squid -f /usr/local/etc/squid/squid.conf
>
> В данном случае у squid нет заблокированных сигналов и есть игнорируемые.
Можно также посмотреть подробности:
# procstat -i 53667 | fgrep -v -- ---
PID COMM SIG FLAGS
53667 squid INT -I-
53667 squid URG -I-
53667 squid CHLD -I-
53667 squid TTIN -I-
53667 squid TTOU -I-
53667 squid IO -I-
53667 squid WINCH -I-
53667 squid INFO -I-
53667 squid USR1 --C
53667 squid 32 --C
Тут мы видим те сигналы, для которых включено игнорирование (флаг I в наборе флагов)
и два последних обрабатываются особо (флаг C от catch).
Игнорирование глобально для всего процесса, но если процесс мультитредовый,
то каждый тред может ещё блокировать доставку себе определенных сигналов.
У squid такого нет, но вот пример для VBoxHeadless:
# procstat -j 2212 | fgrep -v -- -- | head
PID TID COMM SIG FLAGS
2212 100930 VBoxHeadless ALRM -B
2212 100934 VBoxHeadless ALRM -B
2212 100935 VBoxHeadless ALRM -B
2212 100936 VBoxHeadless ALRM -B
2212 100937 VBoxHeadless ALRM -B
2212 100939 VBoxHeadless ALRM -B
2212 100941 VBoxHeadless ALRM -B
2212 100944 VBoxHeadless ALRM -B
2212 100963 VBoxHeadless ALRM -B
Это всё документировано в man procstat.
More information about the freebsd
mailing list