2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

systemdメモ

Last updated at Posted at 2019-04-02

論争が耐えないsystemdですが、そろそろ諦めて使わざるを得ないですね。
ということで、設定メモを残しておきます。

systemdとは

/etc/init.d/に呪文のようなスクリプトを置くのはもう嫌だ!と思って作ったらしいです。(systemd - ウィキペディア)
なので、systemdを利用しているここ5年ぐらいのディストリビューションは/etc/init.d/配下にファイルがほとんどありません。(networkぐらいじゃないかな。)
amazon linuxも2からsystemdが標準になっています。

/etc/init.d/にいた猛者たちはどこにいったのかというと、/usr/lib/systemd//etc/systemd/system/ にいます。

[murata@coinpedia-api-ap01 ~]$ cat /etc/system-release
Amazon Linux 2
[murata@coinpedia-api-ap01 ~]$ ll /etc/init.d/                                                                                                                                                                                                                                              
total 40
lrwxrwxrwx 1 root root    54 Jun 23 07:45 cfn-hup -> ../../../opt/aws/apitools/cfn-init/init/redhat/cfn-hup
-rw-r--r-- 1 root root 17500 May  3  2017 functions
-rwxr-xr-x 1 root root  4334 May  3  2017 netconsole
-rwxr-xr-x 1 root root  7293 May  3  2017 network
-rw-r--r-- 1 root root  1160 May  4 08:31 README


[murata@coinpedia-api-ap01 ~]$ ll /usr/lib/systemd/
total 7748
drwxr-xr-x  2 root root     162 Jun 23 07:45 catalog
-rw-r--r--  1 root root    9551 May  4 08:31 import-pubring.gpg
drwxr-xr-x  2 root root      29 Jun 23 07:45 ntp-units.d
-rwxr-xr-x  1 root root    1351 May  3  2017 rhel-autorelabel
-rwxr-xr-x  1 root root     399 May  3  2017 rhel-configure
-rwxr-xr-x  1 root root     110 May  3  2017 rhel-dmesg
-rwxr-xr-x  1 root root     599 Oct 20  2017 rhel-dmraid-activation

~snip;

[murata@coinpedia-api-ap01 ~]$ ll /etc/systemd/system/
total 12
drwxr-xr-x 2 root root  119 Jun 23 07:45 cloud-init.target.wants
lrwxrwxrwx 1 root root   40 Jun 23 07:45 default.target -> /usr/lib/systemd/system/graphical.target
drwxr-xr-x 2 root root   87 Jun 23 07:45 default.target.wants
-rw-r--r-- 1 root root  327 Sep  6 16:52 geth.service
-rw-r--r-- 1 root root  316 Sep  6 16:49 geth.service~
drwxr-xr-x 2 root root   32 Jun 23 07:45 getty.target.wants
drwxr-xr-x 2 root root 4096 Sep  6 16:52 multi-user.target.wants
drwxr-xr-x 2 root root   31 Jun 23 07:45 remote-fs.target.wants
drwxr-xr-x 2 root root   51 Jun 23 07:45 sockets.target.wants
drwxr-xr-x 2 root root  122 Jun 23 07:45 sysinit.target.wants
drwxr-xr-x 2 root root   44 Jun 23 07:45 system-update.target.wants

使い方は?

プロセス

systemctlコマンド使うよ。status, start, enable, disableあたりがよく使う。
chkconfigとserviceコマンドが合わさった感じだね。
サブコマンドとサービス名の順番がいつも逆な気がしていつも苛つくね。

[murata@coinpedia-api-ap01 ~]$ sudo systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-09-05 16:57:18 JST; 24h ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 3288 (sshd)
   CGroup: /system.slice/sshd.service
           └─3288 /usr/sbin/sshd -D

Sep 06 16:10:15 coinpedia-api-ap01 sshd[14174]: Received disconnect from 118.123.15.142 port 53944:11:  [preauth]
Sep 06 17:00:33 coinpedia-api-ap01 sshd[14716]: Invalid user admin from 37.20.235.105 port 46350
Sep 06 17:00:33 coinpedia-api-ap01 sshd[14716]: input_userauth_request: invalid user admin [preauth]
Sep 06 17:00:34 coinpedia-api-ap01 sshd[14716]: Connection closed by 37.20.235.105 port 46350 [preauth]
Sep 06 17:00:41 coinpedia-api-ap01 sshd[14718]: Invalid user admin from 203.190.148.234 port 45566
Sep 06 17:00:41 coinpedia-api-ap01 sshd[14718]: input_userauth_request: invalid user admin [preauth]
Sep 06 17:00:41 coinpedia-api-ap01 sshd[14718]: Connection closed by 203.190.148.234 port 45566 [preauth]
Sep 06 17:00:46 coinpedia-api-ap01 sshd[14720]: Invalid user admin from 90.151.237.80 port 40770
Sep 06 17:00:46 coinpedia-api-ap01 sshd[14720]: input_userauth_request: invalid user admin [preauth]
Sep 06 17:00:46 coinpedia-api-ap01 sshd[14720]: Connection closed by 90.151.237.80 port 40770 [preauth]

ログ

ログを確認するにはjournalctlコマンドを使うよ。
これだけ覚えておけばよさそう。tailしてくれるよ。 [root@coinpedia-api-ap01 murata]# journalctl -u [ユニット名] -xf

[root@coinpedia-api-ap01 murata]# journalctl -u sshd.service -xf
-- Logs begin at Thu 2018-08-16 18:05:25 JST. --
Sep 06 17:00:33 coinpedia-api-ap01 sshd[14716]: input_userauth_request: invalid user admin [preauth]
Sep 06 17:00:34 coinpedia-api-ap01 sshd[14716]: Connection closed by 37.20.235.105 port 46350 [preauth]
Sep 06 17:00:41 coinpedia-api-ap01 sshd[14718]: Invalid user admin from 203.190.148.234 port 45566
Sep 06 17:00:41 coinpedia-api-ap01 sshd[14718]: input_userauth_request: invalid user admin [preauth]
Sep 06 17:00:41 coinpedia-api-ap01 sshd[14718]: Connection closed by 203.190.148.234 port 45566 [preauth]

一覧

動いているサービス: systemctl list-units --type=service
全部: systemctl list-unit-files --type=service

あんまり使わないから覚えられないね。毎回ググるね。

登録(serviceしか使ったことない)

手動で登録するには、/etc/systemd/system/xxxxx.serviceとかってファイルを置けばOKだよ。
ファイルをおいた時点で、 sudo systemctl status test-deroris.service とかで確認ができる状態になるよ。

❯ cat /etc/systemd/system/test-derori.service
[Unit]
Description=test daemon
ConditionPathExists=/tmp/testdaemon
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/tmp/testdaemon
PermissionsStartOnly=true

[Install]
WantedBy=multi-user.target

起動の順番とか、落ちてたら勝手にリスタートするとかそーいうのも定義できる。/etc/init.d/よりだいぶ見やすいね。(逆に無限再起動に気づかない可能性に注意して!)
全部覚えるのは無理だから似たようなサービスのファイルをコピって使うといいよ。

参考

ココを見れば一発だね。

日本語のわかりやすい記事: https://qiita.com/a_yasui/items/f2d8b57aa616e523ede4
公式サイト: https://www.freedesktop.org/wiki/Software/systemd/

systemd-ask-password

デーモンを起動させるのにパスワードが必要な場合、systemd-ask-password というコマンドを使うと、別ttyからパスワードを持ってこれるよ。
sudo 権限を与えたくない場合とか、起動したいデーモンがパスワードを要求してくる場合に利用できるよ。(セキュリティに注意)

こんな感じで使う。

/tmp/testdaemon
# !/bin/bash -e

pass=$(systemd-ask-password --keyname=passphrase 'Enter passphrase:')
echo $pass # $passに入力したパスワードが入ってる。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?