そば屋なエンジニア

~インフラエンジニアのメモ~

~CentOS7~ 自前のgit-daemonを動かす

何気に地味で、ないとこまるgitですが、yumから入れて細かい事をし出すと何かとうまく動いてくれません。

また、CentOS7ではinit.dからsystemdへ切り替わっているため、別の作法で起動設定を定義しなければなりません。
そこで、自前でgitを入れて、systemd配下で動かすためのunitファイルを準備しました。
#gitの自前コンパイル・インストールは割愛します。

まず、eclipseのegitから使う際にgit-daemon側ではrecieve-packを有効にしたりしますが、これってgitのbinディレクトリにパスが通ってないと、git-daemonで受け付けられないんですよね。
init.dスクリプトの時は、スクリプトの中で環境変数PATHを定義するだけでしたが、systemdの場合は作法が変わります。

まず、環境変数を定義したファイルを用意します。

cat /etc/sysconfig/git.env

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/var/home/ap/git/bin:/var/home/ap/git/libexec/git-core


そして、この環境変数を設定したファイルを読み込むようにUnitファイルに定義します。
※EnvironmentFileでファイルのフルパスを指定します。またパスの先頭に「-」をつけることを忘れないでください。
※ExecStartでのgit-daemonの指定(ファイルパス)、--base-pathの指定はご自身の環境に合わせて読み替えてください。

cat /usr/lib/systemd/system/git.service

[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)

[Service]
Type=simple
User=root
EnvironmentFile=-/etc/sysconfig/git.env
ExecStart=/var/home/ap/git/libexec/git-core/git-daemon --base-path=/var/home/gitrep --enable=receive-pack --export-all --syslog --verbose

[Install]
WantedBy=multi-user.target


これでsystemctl start git.serviceでgit-daemonがリクエストを受け付けてくれます。 自動起動にするのであれば、systemctl enable git.serviceで完了です。

~CentOS7~Nginxの起動ファイル(Unitファイル)

CetnOS7になってから、デーモンの起動方法が変わりました。

従来のinit.dスクリプトからsystemdでの管理に変更されて、
起動の作法が大幅に変更になりました。

まずはNginxからと言うことで、以下のUnitファイルを用意する
ことで解決できました。

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/var/home/ap/nginx/nginx -t -c /var/home/ap/nginx/etc/nginx.conf
ExecStart=/var/home/ap/nginx/nginx -c /var/home/ap/nginx/etc/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

~CentOS7~ IPv6を無効化する方法

ふと何もやっていないことに気づき調べたところ、カーネルパラメータで設定が可能とのこと。
view /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

上記設定後、再起動する。再起動後、各パラメータが1になっていれば無効化できている。
sysctl -a | grep net.ipv6.conf.*disable_ipv6

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
ランキング参加中~ポチッと応援よろしく
ギャラリー
  • 【自作アプリ】 – グラくる - インフラはこんな風になってます