我在一台机器上运行了两个不同的 OpenVPN 服务器,我想重启其中一个(另一个保持不变)。我知道我可以使用 重启所有 OpenVPN 服务service openvpn restart
,但这样会重启所有 OpenVPN 服务。
有没有办法使用service
命令重新启动特定的 OpenVPN 服务器?
答案1
由于/etc/init.d/openvpn
脚本(由执行的脚本/usr/sbin/service
)没有提供任何选项来执行此操作(至少对于 ubuntu-10.04 来说),所以答案是否定的。
但由于都是脚本,您只需编辑 /etc/init.d/openvpn 并添加类似
named-restart)
log_action_begin_msg "Restarting $DESC $2"
PIDFILE="/var/run/openvpn.${2}.pid"
NAME=$2
log_daemon_msg " Stopping VPN '$NAME'"
stop_vpn
sleep 1
log_daemon_msg " Restarting VPN '$NAME'"
start_vpn
if test -z "$PIDFILE" ; then
log_warning_msg " VPN $2 is not running."
fi
;;
之后
case "$1" in
指令。稍后,您可以简单地调用service openvpn named-restart <vpn-name>
。
答案2
cmd“service openvpn restart”不做任何区分,它重新启动服务。我认为解决方案可能是重新加载服务。它不会停止服务,而是重新加载配置文件。所以它可能会奏效。
否则,我认为您无法重新启动其中一个 vpn,而无需使用服务 cmd 重新启动另一个。