De spelunking the source em include/xtables.h
, encontramos
enum xtables_exittype {
OTHER_PROBLEM = 1,
PARAMETER_PROBLEM,
VERSION_PROBLEM,
RESOURCE_PROBLEM, // number 4 because that's how enum count
Com algumas hipóteses extravagantes sobre o ramo de código que está sendo seguido (se não houver erros impressos pelo seu iptables
?), iptables/iptables.c
pode exit(RESOURCE_PROBLEM)
devido ao que parece ser um problema de bloqueio. Isso se encaixa com a sua descrição de um laço apertado dos comandos iptables
(embora deva haver algum erro no erro padrão, o seu imprime isso?); talvez, em vez disso, use iptables-restore
para inserir atomicamente todas as alterações necessárias de uma só vez, ou diminuir a velocidade do loop (e confirme se esse código é o caminho de erro que está sendo acionado).