Используя SetTriggerOrder прекрасен, но если Ваш код зависит от определенной последовательности выполнения, почему бы не обернуть все Ваши триггеры в хранимые процедуры, и имейте первый вызов второе, второй вызов третье, и т.д.
Тогда у Вас просто есть первый, выполняются в триггере.
Кто-то в будущем будет благодарен, что они не должны были рыть вокруг в системной таблице для определения пользовательской последовательности выполнения.
Вы можете использовать lsof (8)
. Если PID
- это идентификатор процесса, а FD
- это номер дескриптора файла для интересующего вас сокета, вы можете сделать следующее:
lsof -a -p PID -d FD -T f
Чтобы вывести список всех сокетов IPv4 процесса :
lsof -a -p PID -i 4 -T f
Это распечатает параметры сокета с SO =
, среди другой информации. Обратите внимание, что если параметры не заданы, вы получите пустую строку, поэтому вы увидите что-то вроде SO = PQLEN = 0
и т. Д. Чтобы проверить SO_BROADCAST
, просто введите grep для строка SO_BROADCAST
после SO =
, например
if lsof -a -p PID -d FD -T f | grep -q 'SO=[^=]*SO_BROADCAST'; then
# socket has SO_BROADCAST
else
# it doesn't
fi