「個人用systemd」の版間の差分
3行目: | 3行目: | ||
* セッションごとではなくユーザーごと。複数のログインにおいて複数のsystemdが立ち上がるわけではない。 | * セッションごとではなくユーザーごと。複数のログインにおいて複数のsystemdが立ち上がるわけではない。 | ||
* 各ユーザーが指定する独自の定義は<code>~/.config/systemd/user</code>に入れる。 | * 各ユーザーが指定する独自の定義は<code>~/.config/systemd/user</code>に入れる。 | ||
− | * 個人用systemdのインスタンスは<code>systemd --user</code>でシステムのものと同じように管理できる。 | + | * 個人用systemdのインスタンスは<code>systemd --user</code>でシステムのものと同じように管理できる。<ref>システム全体のものと比較するとroot権限がいらないという利点があるが、その分当該ユーザーが可能な行動に制限される。</ref> |
− | * もちろんcgroupsに格納されるので各種のリソース制限などを利用することができる。 | + | * もちろんcgroupsに格納されるので各種のリソース制限などを利用することができる。<ref>もともとsystemdはinitを代わりとしてシステム全体のプロセスを管理しているものであり、実は個人用systemdを介さずとも全てのプロセスはsystemdから派生したプロセスであるが、設定ファイルの定義により、より自由度の高い、緻密な管理が行える。尚、個人用のsystemdも例外ではなく、systemdから派生するプロセスである。</ref> |
* 再起動時など、プロセスが終了される場合、適切な終了プロセスを踏んだ上で処理できる。 | * 再起動時など、プロセスが終了される場合、適切な終了プロセスを踏んだ上で処理できる。 | ||
==例== | ==例== |
2015年7月13日 (月) 13:58時点における版
systemdは各ユーザーごとにユーザープロセス[1]として立ち上げられているのでログイン時の起動などオートメーションに使用することができる。
特徴
- セッションごとではなくユーザーごと。複数のログインにおいて複数のsystemdが立ち上がるわけではない。
- 各ユーザーが指定する独自の定義は
~/.config/systemd/user
に入れる。 - 個人用systemdのインスタンスは
systemd --user
でシステムのものと同じように管理できる。[2] - もちろんcgroupsに格納されるので各種のリソース制限などを利用することができる。[3]
- 再起動時など、プロセスが終了される場合、適切な終了プロセスを踏んだ上で処理できる。
例
Syncthing
Syncthingを立ち上げる場合。
[Unit] Description=Syncthing Personal Filesharing Cloud [Service] Type=simple ExecStart=/your/path/to/syncthing KillSignal=SIGINT TimeoutSec=45 Restart=on-failure # Hardening PrivateTmp=yes [Install] WantedBy=default.target
Freenet
Freenetを立ち上げる場合。
[Unit] Description=Freenet -- The Free Network After=network.target [Service] Type=forking ExecStart=/your/path/to/run.sh start ExecStop=/your/path/to/run.sh stop ExecReload=/your/path/to/run.sh restart KillSignal=SIGINT TimeoutSec=45 Restart=on-failure # Hardening PrivateTmp=yes [Install] WantedBy=default.target