diff options
author | Rick Yang <rick68@gmail.com> | 2015-12-10 00:52:44 +0800 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2016-01-20 03:47:33 +0100 |
commit | f8c3130e0fb0bc1545fed1ef2974c9509208c59f (patch) | |
tree | a1783e9d8ca68a86e61e773d6318930ede792496 /nixos | |
parent | 5b8c8718420671f7af2b0189299a55e43c252d5b (diff) | |
download | nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.tar nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.tar.gz nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.tar.bz2 nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.tar.lz nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.tar.xz nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.tar.zst nixlib-f8c3130e0fb0bc1545fed1ef2974c9509208c59f.zip |
softether: Fixed problems with using systemd services
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/networking/softether.nix | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/nixos/modules/services/networking/softether.nix b/nixos/modules/services/networking/softether.nix index a421b32f02c2..5e49efc3aa3a 100644 --- a/nixos/modules/services/networking/softether.nix +++ b/nixos/modules/services/networking/softether.nix @@ -61,11 +61,14 @@ in dataDir = cfg.dataDir; })) ]; - systemd.services.softether = { - description = "SoftEther VPN services initial job"; - after = [ "network-interfaces.target" ]; - wantedBy = [ "multi-user.target" ]; - preStart = '' + systemd.services."softether-init" = { + description = "SoftEther VPN services initial task"; + wantedBy = [ "network-interfaces.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = false; + }; + script = '' for d in vpnserver vpnbridge vpnclient vpncmd; do if ! test -e ${cfg.dataDir}/$d; then ${pkgs.coreutils}/bin/mkdir -m0700 -p ${cfg.dataDir}/$d @@ -81,12 +84,12 @@ in (mkIf (cfg.vpnserver.enable) { systemd.services.vpnserver = { description = "SoftEther VPN Server"; - after = [ "network-interfaces.target" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + wantedBy = [ "network-interfaces.target" ]; serviceConfig = { + Type = "forking"; ExecStart = "${pkg}/bin/vpnserver start"; ExecStop = "${pkg}/bin/vpnserver stop"; - Type = "forking"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnserver/vpnserver @@ -101,12 +104,12 @@ in (mkIf (cfg.vpnbridge.enable) { systemd.services.vpnbridge = { description = "SoftEther VPN Bridge"; - after = [ "network-interfaces.target" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + wantedBy = [ "network-interfaces.target" ]; serviceConfig = { + Type = "forking"; ExecStart = "${pkg}/bin/vpnbridge start"; ExecStop = "${pkg}/bin/vpnbridge stop"; - Type = "forking"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnbridge/vpnbridge @@ -121,12 +124,12 @@ in (mkIf (cfg.vpnclient.enable) { systemd.services.vpnclient = { description = "SoftEther VPN Client"; - after = [ "network-interfaces.target" ]; - wantedBy = [ "multi-user.target" ]; + after = [ "softether-init.service" ]; + wantedBy = [ "network-interfaces.target" ]; serviceConfig = { + Type = "forking"; ExecStart = "${pkg}/bin/vpnclient start"; ExecStop = "${pkg}/bin/vpnclient stop"; - Type = "forking"; }; preStart = '' rm -rf ${cfg.dataDir}/vpnclient/vpnclient |