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.

_______________________________________________
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd

Ответить