openSUSE:Systemd のサービス

移動先: 案内, 検索
このページでは、 openSUSE のパッケージャや開発者が作成した、 openSUSE に特化した systemd サービスファイルを示しています。

注意: 少なくとも、 systemd を使用している他のディストリビューションでサービスファイルが提供されていないかどうかを、あらかじめ確認しておいてください。基本的に、 systemd のサービスファイルはディストリビューションが異なっていても使用できる仕組みであるため、一般に "車輪の再発明" と呼ばれる無駄な作業は不要となるためです。このページは主に、他のディストリビューションを使用しているパッケージャや開発者に対する資料です。

再度注意: これらのサービスファイルは、ソフトウエアの開発元に提供するのが最も適切です。ですから、少なくとも 1 回は開発元に送ってみてください。そんなに難しい話ではありませんから :-)

systemd のサービスファイルの作成方法について: openSUSE:systemd のサービスの作成方法

下記はアルファベット順に記載していただけると助かります。

ネットワーキング

DNS

dnscrypt

# This file is part of dnscrypt
# Author: Marguerite Su <i@marguerite.su>
# Version: 1.2.0
# Description: dnscrypt is a tool developed by OpenDNS company.
#              it aims to encrypt your dns query to OpenDNS to protect from
#              middle-man attack or DNS polution(commonly see in China).
#              it publics free (also redistributes free). 
#              in openSUSE it's licensed under SuSE-Permissive(Non-free ware).
#              details see its documentation.
[Unit]
Description=Secure connection between your computer and DNS resolver(openDNS)
After=network.target

[Service]
Type=forking
PIDFile=/var/run/dnscrypt-proxy.pid
ExecStart=/usr/sbin/dnscrypt-proxy --daemonize \
          -p /var/run/dnscrypt-proxy.pid \
          -l /var/log/dnscrypt-proxy.log
Restart=on-abort

[Install]
WantedBy=multi-user.target

IPv6

He.net

# Author: Marguerite Su <i@marguerite.su>
# Use Case: You registered a He.net IPv6 tunnel, and want it connected automatically
#           without entering commands every startup.
[Unit]
Description=Daemon to start He.net IPv6
Wants=network-online.target
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/ip tunnel add he-ipv6 mode sit \
          remote 66.220.19.42 local 108.171.7.158 ttl 255 ; \
          /usr/sbin/ip link set he-ipv6 up ; \
          /usr/sbin/ip addr add 2001:475:c:1183::2/64 dev he-ipv6 ; \
          /usr/sbin/ip route add ::/0 dev he-ipv6 ; \
          /usr/sbin/ip -6 addr
ExecStop=/usr/sbin/ip route delete ::/0 dev he-ipv6 ; \
         /usr/sbin/ip -6 addr del 2001:475:c:1183::2/64 dev he-ipv6 ; \
         /usr/sbin/ip link set he-ipv6 down ; \
         /usr/sbin/ip tunnel del he-ipv6

[Install]
WantedBy=multi-user.target

環境に応じて `remote`, `local`, `ipv6` の各アドレスを変更してください。ただし、これは openSUSE の中国語フォーラム向けに作ったもので、大規模に配布することは想定していません。

VPN

strongswan

openSUSE における Strongswan には systemd のサービスファイルが含まれていて、自身を起動する際にはそれをそのまま利用することができます。下記の例は、ポートの許可やアドレス変換、転送などの設定を iptables で行なうためのサービスファイルです。

# Author: Marguerite Su <i@marguerite.su>
# Use Case: You have a strongswan vpn. You don't want to input iptables commands
#           everytime upon server restart.
[Unit]
Description=Scripts to setup iptables rules for strongswan
Wants=network-online.target
# has to start before strongswan, or it doesn't know the routes.
# so you can connect, but no traffic.
Before=strongswan.service 
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/iptables -A INPUT -p udp --dport 500 -j ACCEPT ; \
          /usr/sbin/iptables -A INPUT -p udp --dport 4500 -j ACCEPT ; \
          /usr/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE ; \
          /usr/sbin/iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT ; \
          /bin/sh -c 'echo -n 1 > /proc/sys/net/ipv4/ip_forward'
ExecStop=/bin/sh -c 'echo -n 0 > /proc/sys/net/ipv4/ip_forward' ; \
         /usr/sbin/iptables -D FORWARD -s 10.0.0.0/24 -j ACCEPT ; \
         /usr/sbin/iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE ; \
         /usr/sbin/iptables -D INPUT -p udp --dport 4500 -j ACCEPT ; \
         /usr/sbin/iptables -D INPUT -p udp --dport 500 -j ACCEPT

[Install]
WantedBy=multi-user.target

"10.0.0.0/24" の個所はお使いの環境に合わせて変更してください。zh:openSUSE:Systemd_services