「個人用systemd」の版間の差分
細 (→Syncthing) |
(→例) |
||
8行目: | 8行目: | ||
==例== | ==例== | ||
===Syncthing=== | ===Syncthing=== | ||
− | [ | + | [[Syncthing]]を立ち上げる場合。 |
<pre> | <pre> | ||
[Unit] | [Unit] | ||
28行目: | 28行目: | ||
===Freenet=== | ===Freenet=== | ||
− | [ | + | [[Freenet]]を立ち上げる場合。 |
<pre> | <pre> | ||
49行目: | 49行目: | ||
[Install] | [Install] | ||
WantedBy=default.target | WantedBy=default.target | ||
+ | </pre> | ||
+ | |||
+ | ===Jupyter=== | ||
+ | [[Jupyter]]を立ち上げる場合。前提としてconda経由でプライベートな環境を切ってある。 | ||
+ | <code>/full/path/to/personal_env</code>を設定した環境に変更。 | ||
+ | |||
+ | <code>WorkingDirectory</code>はノートブックを格納してある場所に設定。こうするとその場所のみが再帰的にアクセス可能な場所になる。 | ||
+ | |||
+ | <pre> | ||
+ | [Unit] | ||
+ | Description=Jupyter Notebook | ||
+ | After=graphical.target | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | ExecStart=/full/path/to/personal_env/bin/jupyter notebook | ||
+ | WorkingDirectory=/full/path/to/notebooks | ||
+ | TimeoutSec=60 | ||
+ | Restart=on-failure | ||
+ | |||
+ | # Hardening | ||
+ | PrivateTmp=yes | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
</pre> | </pre> | ||
2017年7月9日 (日) 16:24時点における最新版
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=always # 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
Jupyter
Jupyterを立ち上げる場合。前提としてconda経由でプライベートな環境を切ってある。
/full/path/to/personal_env
を設定した環境に変更。
WorkingDirectory
はノートブックを格納してある場所に設定。こうするとその場所のみが再帰的にアクセス可能な場所になる。
[Unit] Description=Jupyter Notebook After=graphical.target [Service] Type=simple ExecStart=/full/path/to/personal_env/bin/jupyter notebook WorkingDirectory=/full/path/to/notebooks TimeoutSec=60 Restart=on-failure # Hardening PrivateTmp=yes [Install] WantedBy=multi-user.target