<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <!-- 2022-05-09 lun. 10:04 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>=systemd= services and timers</title> <meta name="author" content="Dehaeze Thomas" /> <meta name="generator" content="Org Mode" /> <link rel="stylesheet" type="text/css" href="./dist/style.css"/> <script type="text/javascript" src="./dist/script.js"></script> </head> <body> <div id="org-div-home-and-up"> <a accesskey="h" href="./index.html"> UP </a> | <a accesskey="H" href="./index.html"> HOME </a> </div><div id="content" class="content"> <h1 class="title"><code>systemd</code> services and timers</h1> <div id="table-of-contents" role="doc-toc"> <h2>Table of Contents</h2> <div id="text-table-of-contents" role="doc-toc"> <ul> <li><a href="#orgbd1ef92"><code>braingit</code> - Automatic commit and push new brain pages</a> <ul> <li><a href="#orgea157a9">Service</a></li> <li><a href="#org37b5dfc">Timer</a></li> <li><a href="#org4da53fa">Script</a></li> </ul> </li> <li><a href="#org0122dc5"><code>checkmail</code> - Check new mails</a> <ul> <li><a href="#org6104a46">Service</a></li> <li><a href="#orgc84b1eb">Timer</a></li> <li><a href="#org8c26f1e">Script</a></li> </ul> </li> <li><a href="#org290b78f"><code>syncmail</code> - Synchronize all mails</a> <ul> <li><a href="#orgefd8c7b">Service</a></li> <li><a href="#org9594653">Timer</a></li> </ul> </li> <li><a href="#orgc224066"><code>vdirsyncer</code> - Synchronize calendar and contacts</a> <ul> <li><a href="#orgb44b558">Service</a></li> <li><a href="#org088f759">Timer</a></li> </ul> </li> <li><a href="#org632bc1c"><code>ssh-agent</code> - SSH Agent</a> <ul> <li><a href="#org9a8f7fb">Service</a></li> </ul> </li> <li><a href="#orga057b5a"><code>emacs</code> - Emacs</a> <ul> <li><a href="#org4b91453">Service</a></li> </ul> </li> <li><a href="#orge6f4a6a"><code>trash-empty</code> - Empty the trash for files older than 30 days</a> <ul> <li><a href="#orgfa6b7df">Service</a></li> <li><a href="#org17be1c1">Timer</a></li> </ul> </li> <li><a href="#orga1ff028"><code>syncthing</code></a> <ul> <li><a href="#orgcbf786a">Service</a></li> </ul> </li> <li><a href="#orgefe060e"><code>homelab-tunnel</code> - SSH Tunnel</a> <ul> <li><a href="#org1be238b">Service</a></li> </ul> </li> <li><a href="#orgd4332cd"><code>esrf-tunnel</code> - SSH Tunnel</a> <ul> <li><a href="#org02bdf60">Service</a></li> </ul> </li> </ul> </div> </div> <p> <a href="https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units">https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units</a> </p> <div id="outline-container-orgbd1ef92" class="outline-2"> <h2 id="orgbd1ef92"><code>braingit</code> - Automatic commit and push new brain pages</h2> <div class="outline-text-2" id="text-orgbd1ef92"> </div> <div id="outline-container-orgea157a9" class="outline-3"> <h3 id="orgea157a9">Service</h3> <div class="outline-text-3" id="text-orgea157a9"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Sync Brain Website everyday <span class="org-variable-name">RefuseManualStart</span>=no <span class="org-variable-name">RefuseManualStop</span>=yes [<span class="org-type">Service</span>] <span class="org-variable-name">Type</span>=oneshot <span class="org-variable-name">ExecStart</span>=%h/.local/bin/brain_git_push </pre> </div> </div> </div> <div id="outline-container-org37b5dfc" class="outline-3"> <h3 id="org37b5dfc">Timer</h3> <div class="outline-text-3" id="text-org37b5dfc"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Sync Brain Website everyday <span class="org-variable-name">RefuseManualStart</span>=no <span class="org-variable-name">RefuseManualStop</span>=no <span class="org-variable-name">Wants</span>=network-online.target <span class="org-variable-name">After</span>=network-online.target [<span class="org-type">Timer</span>] <span class="org-variable-name">OnCalendar</span>=*-*-* <span class="org-highlight-numbers-number">16</span>:<span class="org-highlight-numbers-number">00</span>:<span class="org-highlight-numbers-number">00</span> <span class="org-variable-name">Persistent</span>=true <span class="org-variable-name">Unit</span>=braingit.service [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> <div id="outline-container-org4da53fa" class="outline-3"> <h3 id="org4da53fa">Script</h3> <div class="outline-text-3" id="text-org4da53fa"> <div class="org-src-container"> <pre class="src src-bash"><span class="org-type">cd</span> ~/Cloud/programming/brain-website/ <span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-rainbow-delimiters-depth-2">[</span> <span class="org-negation-char">!</span> -z $<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-sh-quoted-exec">git</span> status -s content/<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">]</span> <span class="org-keyword">then</span> <span class="org-type">git</span> add content static && <span class="org-sh-escaped-newline">\</span> <span class="org-type">git</span> commit -m <span class="org-string">"Update Content - </span><span class="org-string"><span class="org-sh-quoted-exec">$(</span></span><span class="org-sh-quoted-exec">date</span><span class="org-string"><span class="org-sh-quoted-exec"> +%F)</span></span><span class="org-string">"</span> && <span class="org-sh-escaped-newline">\</span> <span class="org-type">git</span> push <span class="org-keyword">exit</span> <span class="org-keyword">fi</span> </pre> </div> </div> </div> </div> <div id="outline-container-org0122dc5" class="outline-2"> <h2 id="org0122dc5"><code>checkmail</code> - Check new mails</h2> <div class="outline-text-2" id="text-org0122dc5"> </div> <div id="outline-container-org6104a46" class="outline-3"> <h3 id="org6104a46">Service</h3> <div class="outline-text-3" id="text-org6104a46"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Check new mails <span class="org-variable-name">RefuseManualStart</span>=no <span class="org-variable-name">RefuseManualStop</span>=yes [<span class="org-type">Service</span>] <span class="org-variable-name">Type</span>=oneshot <span class="org-variable-name">ExecStart</span>=%h/.local/bin/checkmail -q </pre> </div> </div> </div> <div id="outline-container-orgc84b1eb" class="outline-3"> <h3 id="orgc84b1eb">Timer</h3> <div class="outline-text-3" id="text-orgc84b1eb"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Check Mail every x minutes <span class="org-variable-name">RefuseManualStart</span>=no <span class="org-variable-name">RefuseManualStop</span>=no <span class="org-variable-name">Wants</span>=network-online.target <span class="org-variable-name">After</span>=network-online.target <span class="org-variable-name">Requires</span>=checkmail.service [<span class="org-type">Timer</span>] <span class="org-variable-name">Persistent</span>=false <span class="org-variable-name">OnBootSec</span>=2min <span class="org-variable-name">OnUnitActiveSec</span>=5min <span class="org-variable-name">AccuracySec</span>=2min <span class="org-variable-name">Unit</span>=checkmail.service [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> <div id="outline-container-org8c26f1e" class="outline-3"> <h3 id="org8c26f1e">Script</h3> <div class="outline-text-3" id="text-org8c26f1e"> <div class="org-src-container"> <pre class="src src-bash"><span class="org-keyword">while</span> <span class="org-rainbow-delimiters-depth-1">[</span> -n <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">1</span></span><span class="org-string">"</span> <span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-keyword">do</span> <span class="org-comment-delimiter"># </span><span class="org-comment">while loop starts</span> <span class="org-keyword">case</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">1</span></span><span class="org-string">"</span><span class="org-keyword"> in</span> -a) <span class="org-variable-name">opt_all</span>=<span class="org-string">'--all'</span> ;; <span class="org-comment-delimiter"># </span><span class="org-comment">Check All inboxes</span> -v) <span class="org-variable-name">opt_verbose</span>=<span class="org-string">'--verbose'</span> ;; <span class="org-comment-delimiter"># </span><span class="org-comment">Verbose</span> -q) <span class="org-variable-name">opt_quiet</span>=<span class="org-string">'--quiet'</span> ;; <span class="org-comment-delimiter"># </span><span class="org-comment">Quiet</span> *) <span class="org-type">echo</span> <span class="org-string">"Option </span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">1</span></span><span class="org-string"> not recognized"</span> ;; <span class="org-comment-delimiter"># </span><span class="org-comment">In case you typed a different option</span> <span class="org-keyword">esac</span> <span class="org-builtin">shift</span> <span class="org-keyword">done</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Count number of mails</span> <span class="org-variable-name">gmail_old</span>=<span class="org-string">"</span><span class="org-string"><span class="org-sh-quoted-exec">$(</span></span><span class="org-sh-quoted-exec">ls</span><span class="org-string"><span class="org-sh-quoted-exec"> ~/.mail/gmail/Inbox/new | wc -l)</span></span><span class="org-string">"</span> <span class="org-variable-name">esrf_old</span>=<span class="org-string">"</span><span class="org-string"><span class="org-sh-quoted-exec">$(</span></span><span class="org-sh-quoted-exec">ls</span><span class="org-string"><span class="org-sh-quoted-exec"> ~/.mail/esrf/Inbox/new | wc -l)</span></span><span class="org-string">"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Retreive mails</span> mbsync $<span class="org-variable-name">opt_all</span> $<span class="org-variable-name">opt_verbose</span> gmail-Home esrf-Home <span class="org-highlight-numbers-number">2</span>>/tmp/mbsync.log <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Count number of mails</span> <span class="org-variable-name">gmail_new</span>=<span class="org-string">"</span><span class="org-string"><span class="org-sh-quoted-exec">$(</span></span><span class="org-sh-quoted-exec">ls</span><span class="org-string"><span class="org-sh-quoted-exec"> ~/.mail/gmail/Inbox/new | wc -l)</span></span><span class="org-string">"</span> <span class="org-variable-name">esrf_new</span>=<span class="org-string">"</span><span class="org-string"><span class="org-sh-quoted-exec">$(</span></span><span class="org-sh-quoted-exec">ls</span><span class="org-string"><span class="org-sh-quoted-exec"> ~/.mail/esrf/Inbox/new | wc -l)</span></span><span class="org-string">"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Total Number of new mails since last checking</span> <span class="org-variable-name">new</span>=<span class="org-string">"</span><span class="org-string"><span class="org-sh-quoted-exec">$((</span></span><span class="org-string"><span class="org-constant"><span class="org-sh-quoted-exec">$</span></span></span><span class="org-string"><span class="org-variable-name"><span class="org-sh-quoted-exec">esrf_new</span></span></span><span class="org-string"><span class="org-sh-quoted-exec">+</span></span><span class="org-string"><span class="org-constant"><span class="org-sh-quoted-exec">$</span></span></span><span class="org-string"><span class="org-variable-name"><span class="org-sh-quoted-exec">gmail_new</span></span></span><span class="org-string"><span class="org-sh-quoted-exec">)</span></span><span class="org-string">)"</span> <span class="org-variable-name">old</span>=<span class="org-string">"</span><span class="org-string"><span class="org-sh-quoted-exec">$((</span></span><span class="org-string"><span class="org-constant"><span class="org-sh-quoted-exec">$</span></span></span><span class="org-string"><span class="org-variable-name"><span class="org-sh-quoted-exec">esrf_old</span></span></span><span class="org-string"><span class="org-sh-quoted-exec">+</span></span><span class="org-string"><span class="org-constant"><span class="org-sh-quoted-exec">$</span></span></span><span class="org-string"><span class="org-variable-name"><span class="org-sh-quoted-exec">gmail_old</span></span></span><span class="org-string"><span class="org-sh-quoted-exec">)</span></span><span class="org-string">)"</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Notification</span> <span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-1">[</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">new</span></span><span class="org-string">"</span> -gt <span class="org-highlight-numbers-number">0</span> <span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-keyword">then</span> notify-send --hint=string:x-dunst-stack-tag:fV84ivMi <span class="org-string">'Mails '</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">new</span></span><span class="org-string"> new mail(s)"</span> <span class="org-keyword">fi</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> <span class="org-comment-delimiter"># </span><span class="org-comment">Indexation and Tags</span> <span class="org-keyword">if</span> <span class="org-type">pgrep</span> -f <span class="org-string">'mu server'</span>; <span class="org-keyword">then</span> emacsclient --eval <span class="org-string">'(mu4e-update-index)'</span> <span class="org-keyword">else</span> mu index -m ~/.mail $<span class="org-variable-name">opt_verbose</span> $<span class="org-variable-name">opt_quiet</span> <span class="org-keyword">fi</span> <span class="org-comment-delimiter"># </span><span class="org-comment">=============================================================</span> </pre> </div> </div> </div> </div> <div id="outline-container-org290b78f" class="outline-2"> <h2 id="org290b78f"><code>syncmail</code> - Synchronize all mails</h2> <div class="outline-text-2" id="text-org290b78f"> </div> <div id="outline-container-orgefd8c7b" class="outline-3"> <h3 id="orgefd8c7b">Service</h3> <div class="outline-text-3" id="text-orgefd8c7b"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Sync all mails <span class="org-variable-name">RefuseManualStart</span>=no <span class="org-variable-name">RefuseManualStop</span>=yes [<span class="org-type">Service</span>] <span class="org-variable-name">Type</span>=oneshot <span class="org-variable-name">ExecStart</span>=%h/.local/bin/checkmail -a -q </pre> </div> </div> </div> <div id="outline-container-org9594653" class="outline-3"> <h3 id="org9594653">Timer</h3> <div class="outline-text-3" id="text-org9594653"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Sync All Mails every x hours <span class="org-variable-name">RefuseManualStart</span>=no <span class="org-variable-name">RefuseManualStop</span>=no <span class="org-variable-name">Wants</span>=network-online.target <span class="org-variable-name">After</span>=network-online.target <span class="org-variable-name">Requires</span>=syncmail.service [<span class="org-type">Timer</span>] <span class="org-variable-name">Persistent</span>=false <span class="org-variable-name">OnBootSec</span>=30min <span class="org-variable-name">OnUnitActiveSec</span>=300min <span class="org-variable-name">AccuracySec</span>=10min <span class="org-variable-name">Unit</span>=syncmail.service [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> </div> <div id="outline-container-orgc224066" class="outline-2"> <h2 id="orgc224066"><code>vdirsyncer</code> - Synchronize calendar and contacts</h2> <div class="outline-text-2" id="text-orgc224066"> </div> <div id="outline-container-orgb44b558" class="outline-3"> <h3 id="orgb44b558">Service</h3> <div class="outline-text-3" id="text-orgb44b558"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Synchronize calendars and contacts <span class="org-variable-name">Documentation</span>=https://vdirsyncer.readthedocs.org/ <span class="org-variable-name">Wants</span>=network-online.target <span class="org-variable-name">After</span>=network-online.target [<span class="org-type">Service</span>] <span class="org-variable-name">ExecStart</span>=/home/thomas/.local/bin/vdirsyncer --verbosity <span class="org-string">"ERROR"</span> sync <span class="org-variable-name">Type</span>=oneshot </pre> </div> </div> </div> <div id="outline-container-org088f759" class="outline-3"> <h3 id="org088f759">Timer</h3> <div class="outline-text-3" id="text-org088f759"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Synchronize vdirs [<span class="org-type">Timer</span>] <span class="org-variable-name">OnBootSec</span>=5m <span class="org-variable-name">OnUnitActiveSec</span>=15m <span class="org-variable-name">AccuracySec</span>=5m [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=timers.target </pre> </div> </div> </div> </div> <div id="outline-container-org632bc1c" class="outline-2"> <h2 id="org632bc1c"><code>ssh-agent</code> - SSH Agent</h2> <div class="outline-text-2" id="text-org632bc1c"> </div> <div id="outline-container-org9a8f7fb" class="outline-3"> <h3 id="org9a8f7fb">Service</h3> <div class="outline-text-3" id="text-org9a8f7fb"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=SSH key agent [<span class="org-type">Service</span>] <span class="org-variable-name">Type</span>=simple <span class="org-variable-name">Environment</span>=SSH_AUTH_SOCK=%t/ssh-agent.socket <span class="org-variable-name">ExecStart</span>=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> </div> <div id="outline-container-orga057b5a" class="outline-2"> <h2 id="orga057b5a"><code>emacs</code> - Emacs</h2> <div class="outline-text-2" id="text-orga057b5a"> </div> <div id="outline-container-org4b91453" class="outline-3"> <h3 id="org4b91453">Service</h3> <div class="outline-text-3" id="text-org4b91453"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Emacs text editor <span class="org-variable-name">Documentation</span>=info:emacs man:emacs(<span class="org-highlight-numbers-number">1</span>) https://gnu.org/software/emacs/ [<span class="org-type">Service</span>] <span class="org-variable-name">Type</span>=simple <span class="org-variable-name">ExecStart</span>=/usr/bin/emacs --fg-daemon <span class="org-variable-name">ExecStop</span>=/usr/bin/emacsclient --eval <span class="org-string">"(kill-emacs)"</span> <span class="org-variable-name">Environment</span>=SSH_AUTH_SOCK=%t/keyring/ssh <span class="org-variable-name">Restart</span>=on-failure [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> </div> <div id="outline-container-orge6f4a6a" class="outline-2"> <h2 id="orge6f4a6a"><code>trash-empty</code> - Empty the trash for files older than 30 days</h2> <div class="outline-text-2" id="text-orge6f4a6a"> </div> <div id="outline-container-orgfa6b7df" class="outline-3"> <h3 id="orgfa6b7df">Service</h3> <div class="outline-text-3" id="text-orgfa6b7df"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Empty the trash for files older than <span class="org-highlight-numbers-number">30</span> days <span class="org-variable-name">Documentation</span>=https://github.com/andreafrancia/trash-cli [<span class="org-type">Service</span>] <span class="org-variable-name">ExecStart</span>=/home/thomas/.local/bin/trash-empty <span class="org-highlight-numbers-number">30</span> <span class="org-variable-name">Type</span>=oneshot </pre> </div> </div> </div> <div id="outline-container-org17be1c1" class="outline-3"> <h3 id="org17be1c1">Timer</h3> <div class="outline-text-3" id="text-org17be1c1"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Empty trash [<span class="org-type">Timer</span>] <span class="org-variable-name">OnCalendar</span>=*-*-* <span class="org-highlight-numbers-number">16</span>:<span class="org-highlight-numbers-number">00</span>:<span class="org-highlight-numbers-number">00</span> <span class="org-variable-name">Persistent</span>=true <span class="org-variable-name">Unit</span>=trash-empty [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=timers.target </pre> </div> </div> </div> </div> <div id="outline-container-orga1ff028" class="outline-2"> <h2 id="orga1ff028"><code>syncthing</code></h2> <div class="outline-text-2" id="text-orga1ff028"> </div> <div id="outline-container-orgcbf786a" class="outline-3"> <h3 id="orgcbf786a">Service</h3> <div class="outline-text-3" id="text-orgcbf786a"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Syncthing - Open Source Continuous File Synchronization for %I <span class="org-variable-name">Documentation</span>=man:syncthing(<span class="org-highlight-numbers-number">1</span>) <span class="org-variable-name">After</span>=network.target [<span class="org-type">Service</span>] <span class="org-variable-name">Environment</span>=<span class="org-string">"all_proxy=socks5://localhost:8080"</span> <span class="org-variable-name">ExecStart</span>=/usr/bin/syncthing -no-browser -gui-address=<span class="org-string">"0.0.0.0:8384"</span> -no-restart -logflags=<span class="org-highlight-numbers-number">0</span> <span class="org-variable-name">Restart</span>=on-failure <span class="org-variable-name">SuccessExitStatus</span>=<span class="org-highlight-numbers-number">3</span> <span class="org-highlight-numbers-number">4</span> <span class="org-variable-name">RestartForceExitStatus</span>=<span class="org-highlight-numbers-number">3</span> <span class="org-highlight-numbers-number">4</span> [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> </div> <div id="outline-container-orgefe060e" class="outline-2"> <h2 id="orgefe060e"><code>homelab-tunnel</code> - SSH Tunnel</h2> <div class="outline-text-2" id="text-orgefe060e"> <p> Useful to bypass firewalls. This can we used on the browser: </p> <ul class="org-ul"> <li>for <code>qutebrowser</code>, use <code>:set content.proxy socks5://localhost:8080</code> (can setup a shortcut for that)</li> </ul> <p> This is also used for Syncthing. </p> </div> <div id="outline-container-org1be238b" class="outline-3"> <h3 id="org1be238b">Service</h3> <div class="outline-text-3" id="text-org1be238b"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Setup a secure tunnel with homelab <span class="org-variable-name">After</span>=network.target [<span class="org-type">Service</span>] <span class="org-variable-name">ExecStart</span>=/usr/bin/ssh -o ServerAliveInterval=<span class="org-highlight-numbers-number">60</span> -o ExitOnForwardFailure=yes -D <span class="org-highlight-numbers-number">8080</span> -q -N -T homelab <span class="org-comment-delimiter"># </span><span class="org-comment">Restart every >2 seconds to avoid StartLimitInterval failure</span> <span class="org-variable-name">RestartSec</span>=<span class="org-highlight-numbers-number">5</span> <span class="org-variable-name">Restart</span>=always [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> </div> <div id="outline-container-orgd4332cd" class="outline-2"> <h2 id="orgd4332cd"><code>esrf-tunnel</code> - SSH Tunnel</h2> <div class="outline-text-2" id="text-orgd4332cd"> </div> <div id="outline-container-org02bdf60" class="outline-3"> <h3 id="org02bdf60">Service</h3> <div class="outline-text-3" id="text-org02bdf60"> <div class="org-src-container"> <pre class="src src-conf">[<span class="org-type">Unit</span>] <span class="org-variable-name">Description</span>=Setup a secure tunnel with ESRF <span class="org-variable-name">After</span>=network.target [<span class="org-type">Service</span>] <span class="org-variable-name">ExecStart</span>=/usr/bin/ssh -o ServerAliveInterval=<span class="org-highlight-numbers-number">60</span> -o ExitOnForwardFailure=yes -D <span class="org-highlight-numbers-number">8081</span> -q -N -T rnice.esrf.fr <span class="org-comment-delimiter"># </span><span class="org-comment">Restart every >2 seconds to avoid StartLimitInterval failure</span> <span class="org-variable-name">RestartSec</span>=<span class="org-highlight-numbers-number">5</span> <span class="org-variable-name">Restart</span>=always [<span class="org-type">Install</span>] <span class="org-variable-name">WantedBy</span>=default.target </pre> </div> </div> </div> </div> </div> <div id="postamble" class="status"> <p class="author">Author: Dehaeze Thomas</p> <p class="date">Created: 2022-05-09 lun. 10:04</p> </div> </body> </html>