Systemd: start/stop service based on networking connectivity











up vote
1
down vote

favorite












I've been using a VPN heavily recently and would like openvpn to intuitively connect and disconnect based on whether I'm connected to Wi-Fi (or ethernet). Currently, I have a client.conf in /etc/openvpn/ and I'm starting it with $ systemctl start openvpn@client. The problem with this is openvpn continuously attempts to connect to the vpn server even after Wi-Fi is disconnected.



I think systemd is the solution but the documentation and SE answers I've found so far are overwhelming. Can someone offer a simple systemd service template for accomplishing this?










share|improve this question


















  • 1




    Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it.
    – Filipe Brandenburger
    Nov 24 at 15:11










  • Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies.
    – Torxed
    Nov 24 at 15:19

















up vote
1
down vote

favorite












I've been using a VPN heavily recently and would like openvpn to intuitively connect and disconnect based on whether I'm connected to Wi-Fi (or ethernet). Currently, I have a client.conf in /etc/openvpn/ and I'm starting it with $ systemctl start openvpn@client. The problem with this is openvpn continuously attempts to connect to the vpn server even after Wi-Fi is disconnected.



I think systemd is the solution but the documentation and SE answers I've found so far are overwhelming. Can someone offer a simple systemd service template for accomplishing this?










share|improve this question


















  • 1




    Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it.
    – Filipe Brandenburger
    Nov 24 at 15:11










  • Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies.
    – Torxed
    Nov 24 at 15:19















up vote
1
down vote

favorite









up vote
1
down vote

favorite











I've been using a VPN heavily recently and would like openvpn to intuitively connect and disconnect based on whether I'm connected to Wi-Fi (or ethernet). Currently, I have a client.conf in /etc/openvpn/ and I'm starting it with $ systemctl start openvpn@client. The problem with this is openvpn continuously attempts to connect to the vpn server even after Wi-Fi is disconnected.



I think systemd is the solution but the documentation and SE answers I've found so far are overwhelming. Can someone offer a simple systemd service template for accomplishing this?










share|improve this question













I've been using a VPN heavily recently and would like openvpn to intuitively connect and disconnect based on whether I'm connected to Wi-Fi (or ethernet). Currently, I have a client.conf in /etc/openvpn/ and I'm starting it with $ systemctl start openvpn@client. The problem with this is openvpn continuously attempts to connect to the vpn server even after Wi-Fi is disconnected.



I think systemd is the solution but the documentation and SE answers I've found so far are overwhelming. Can someone offer a simple systemd service template for accomplishing this?







linux debian ubuntu systemd openvpn






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 23 at 22:48









user322541

61




61








  • 1




    Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it.
    – Filipe Brandenburger
    Nov 24 at 15:11










  • Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies.
    – Torxed
    Nov 24 at 15:19
















  • 1




    Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it.
    – Filipe Brandenburger
    Nov 24 at 15:11










  • Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies.
    – Torxed
    Nov 24 at 15:19










1




1




Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it.
– Filipe Brandenburger
Nov 24 at 15:11




Do you use NetworkManager to manage your network connections (Wi-Fi, ethernet)? If so, then using NetworkManager dispatcher scripts is the way to go for reacting to events involving network connectivity... Let me know if you're using NetworkManager (please update your answer to state that) and I can try to add an answer that's appropriate for it.
– Filipe Brandenburger
Nov 24 at 15:11












Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies.
– Torxed
Nov 24 at 15:19






Since you're using systemd, it's fully possible to create a service script that triggers when a connection is made. Just make sure it's after=network-online.target. A good read can be found here: askubuntu.com/a/919059. Or this post: unix.stackexchange.com/questions/126009/…. The only thing you have to make sure, is that you connect your wifi/ethernet with systemd-networkd as well, it makes it a hell of a lot easier to chain the dependencies.
– Torxed
Nov 24 at 15:19

















active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f483792%2fsystemd-start-stop-service-based-on-networking-connectivity%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f483792%2fsystemd-start-stop-service-based-on-networking-connectivity%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Morgemoulin

Scott Moir

Souastre