Как запустить mon go после openvpn с Systemd? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь запустить mongodb, который привязывает свой адрес к vpn (OVPN). Вопрос в том, что я хочу, чтобы mongodb запускался при загрузке системы, но когда я перезапускаю сервер, mon go не запускается.

Failed to set up listener: SocketException: Cannot assign requested address

Я включил 2 службы:

openvpn@client.service

[Unit]
Description=OpenVPN connection to %i
PartOf=openvpn.service
ReloadPropagatedFrom=openvpn.service
Before=systemd-user-sessions.service
Documentation=man:openvpn(8)
Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO

[Service]
PrivateTmp=true
KillMode=mixed
Type=forking
ExecStart=/usr/bin/start_vpn.sh %i
PIDFile=/run/openvpn/%i.pid
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn
ProtectSystem=yes
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_READ_SEARCH CAP_AUDIT_WRITE
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw

[Install]
WantedBy=multi-user.target

и mongod.service

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target openvpn@client.service
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

С первой попытки я изменил openvpn@client.service и добавил Before= arg, но не работал, затем я обновил mongod.service и добавил After= arg, но он все еще не работает.

Кто-нибудь знает, в чем может быть проблема или что я делаю плохо?

...