Я нашел ответ на StackOverflow:Разделите команду на две части и перехватите SIGINT во «внешней»:
external-target:
bash -c "trap 'trap - SIGINT SIGTERM ERR; echo hello; exit 1' SIGINT SIGTERM ERR; $(MAKE) internal-target"
internal-target:
sleep 10
Мне удалось заставить openvpn работать, заменив ip
внутри контейнера сценарием bash, который всегда возвращает 0. Я понял, что единственное, что пытается сделать openvpn, это настроить tun0
, а затем назначить ему IP-адрес и поднять его. Я решил сделать это вручную снаружи контейнера (как root ), поэтому openvpn не должен этого делать. Я описал процедуру на вики openvpn здесь