blog.monophile.net

コンピュータのこととかのメモ。

山本 一彰 | Takaaki Yamamoto

山本一彰(Takaaki Yamamoto)

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、2016年に 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を受賞。 現在はSRE(サイト信頼性エンジニア)として生計をたててている。

技術

Configuration Management Terraform, Ansible, Cloud-Init
Cloud Platform GCP, AWS, Azure, OpenStack
Virtualization, Container QEMU+KVM, Proxmox, Xen, LXD/LXC, Docker, Kata, systemd-nspawn
OS, Distribution Debian GNU/Linux, Ubuntu, CentOS, FreeBSD, macOS, ...
Storage Ceph, GlusterFS, ZFS, Btrfs, ...
Router Linux+Netfilter, Quagga, FRR, VyOS, Cisco IOS, YAMAHA RTX, ...
Switch Dell FTOS, AlaxalA, NETGEAR, ...
SQL MySQL, MariaDB(Galera Cluster), PostgreSQL, BigQuery, ...
NoSQL Elasticsearch, InfluxDB, etcd, MongoDB, ...
WebApps WordPress, GitLab, Redmine, ...
Monitoring Grafana, Prometheus, Nagios, Munin, Zabbix
DNS CoreDNS, dnsmasq, Unbound, BIND9, ...
Misc Kubernetes/Istio, certbot, HAProxy, ...

自称はネットワークエンジニアだが、 Linuxのネットワークと仮想化技術が得意なため、 サーバエンジニアの雰囲気のほうが強いかもしれない。

習得中

Virtualization, Container, OS VirtIO GPU, okd, CDH, CoreOS, ...
Network mVPN, Calico, IoT(6LoWPAN, LoRaWAN), ...
NoSQL BigTable, HBase, OpenTSDB, Redis, ...
Misc Test Engineering, Android Apps, ...

大きな領域では、セキュリティを考慮した複数パブリッククラウドの相互運用に興味がある。

投稿

systemdで簡単なサービスを定義してみる

概要

いろいろなLinuxディストリビューションで採用されてきているsystemdを理解するために、 “hello world”を一秒ごとに標準出力へ吐き出す簡単なサービスを定義し、 journalctlでログを確認してみた。

内容は↑の記事とほぼ同様になっているが、 下記では標準出力へそのまま“hello world”を出力しているので、 jounarlctlでログを確認できる点で異なる。

systemd

使ったディストリビューションはUbuntuで、systemdのバージョンは229。

/usr/local/bin/hello-daemon.sh

1秒ごとに標準出力に“hello world”を出力するプログラム /usr/local/bin/hello-daemon.sh を用意する。

↓で実行権限をつける。

/etc/systemd/system/hello.service

hello.service の定義ファイルである /etc/systemd/system/hello.service を用意する。

[Unit]
Description = hello daemon

[Service]
ExecStart = /usr/local/bin/hello-daemon.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

hello.serviceの自動起動を有効にする

↓でhello.serviceの自動起動を有効化できる。

↓で状態の確認。

hello.serviceを開始する

↓でhello.serviceを開始できる。

↓状態の確認。

hello.serviceのプロセスをkillしてみる

hello-daemon.shのPIDが21220だったので、↓でkillしてみる。

systemctl statusで確認すると新しいプロセスがPID 21442で立ち上がったことがわかる。

journalctl でログの確認

hello.serviceのログはjournalctlを使って↓で確認できる。 (-nオプションで5行に制限している。)

hello.serviceの停止

↓でhello.servceを停止できる。

↓プロセスが止まったことを確認できた。

あとがき

ログの処理は journald で一括して設定できるので楽になった? かも。 (journald の設定ファイルは /etc/systemd/journald.conf にある。)

参考