Tag: Systemctl

cheatsheet/systemctl

オプション効果
systemctl daemon-reload設定再読込
systemctl restart daemon-nameデーモン再起動
systemctl status daemon-name -lステータス確認
systemctl enable daemon-name自動起動するように設定
systemctl disable daemon-name自動起動をoff
systemctl is-enabled daemon-name自動起動か?
systemctl list-units –type serviceユニット一覧、サービスのみ
systemctl list-dependencies –reverse network-online.target影響を受けるユニット一覧
systemctl list-dependencies network-online.target依存関係があるユニット一覧
systemctl is-system-runningシステムの状態を返す。running, degraded, maintenance など
systemctl list-units –state=failed失敗しているサービスやユニットをリストアップ
systemctl cat daemon-name設定ファイルを見る
systemctl edit daemon-name設定ファイルを編集

ログを見る場合はjournalctlで確認する。

Read more...

systemd関連のメモ

systemd関連の雑多なメモ

設定ファイルの場所

| /etc/systemd/system/ | ユーザーが作成またはカスタマイズしたユニットファイルが置かれる場所。 | | /lib/systemd/system/ | システムのデフォルトのユニットファイルが置かれる場所。 | | /usr/lib/systemd/system/ | いくつかのディストリビューションでは、システムのデフォルトのユニットファイルがここに配置される場合がある。 |

起動シーケンスの確認

systemd-analyze critical-chain unitname

事前の処理を追加したい場合 ExecStartPre=

man systemd.service 日本語訳 #Linux - Qiita これが参考になった。

ntpdを使わずsystemd-timesyncdを使う

既存のntpdが起動しているとsystemd-timesyncdの設定があってもntpdが優先されるのでアンインストールしたほうが良い。

emerge –unmerge net-misc/ntp

その上で /etc/systemd/timesyncd.conf を参考に設定を行う。 /etc/systemd/timesyncd.confに書いてあるが、 /etc/systemd/配下にtimesyncd.conf.dというディレクトリを作成し配下にファイルをおいたほうが良い。

私は下記のシンプルな内容で設定した。

[Time]
NTP=ntp.nict.jp

logrotateがうまく行かない

/var/log/messagesがログローテートされていない。 –forceを付けて実行するとローテートされる。が、rsyslogdが再起動していない。

logrotate --force /etc/logrotate.conf

/etc/logrotate.d/rsyslog は下記の内容だった。

/var/log/auth.log
/var/log/cron.log
/var/log/daemon.log
/var/log/kern.log
/var/log/lpr.log
/var/log/mail.log
/var/log/news.log
/var/log/user.log
/var/log/debug.log
/var/log/messages
{
        rotate 4
        daily
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                if type -p systemctl 2>&1 1>/dev/null && systemctl is-system-running 2>&1 1>/dev/null ; then
                        systemctl kill -s HUP rsyslog.service
                else
                        test -r /run/rsyslogd.pid && kill -HUP $(cat /run/rsyslogd.pid) 2>&1 1>/dev/null
                fi
        endscript
}

postroteteの処理を追う。ifの条件が2つともtrueであればsystemctlで再起動、 falseであれば、/run/rsyslogd.pidにpidの番号がある事を期待し再起動を試みる。

Read more...