追加読書

追加読書

ユーザーがログインしたときに実行されるサービスを作成しようとしています。

root以外のユーザーとして次のファイルを作成しました。

> cat ~/.local/share/systemd/user/voodoo.service

[Unit]
Description=User service test

[Service]
RemainAfterExit=yes
Type=simple
ExecStart=/bin/bash -c "touch /tmp/ok123"

[Install]
WantedBy=default.target

ただし、systemctlはこれを認識しません。

> systemctl --user restart voodoo.service
Failed to connect to bus: No such file or directory

どんなアイデアがありますか?

答え1

私はあなたが最初にenable奉仕する必要があると思います:

systemctl --user enable voodoo.service
Created symlink /home/andreatsh/.config/systemd/user/default.target.wants/voodoo.service → /home/andreatsh/.local/share/systemd/user/voodoo.service

ご覧のとおり、これはそのフォルダにシンボリックリンクを作成します。次に、次を実行します。

systemctl --user restart voodoo.service 

そしてサービスはとても良いです。

答え2

実際には2つです。これは可能性が高いです。

Ubuntu 15は、システム全体のサービス管理のためにsystemdに切り替えます。しかし、ユーザー固有のサービス管理は依然としてスタートアップであり、16.04でも同様です。

したがって、当然話すsystemctl各ユーザーのインスタンスが見つかりません。そうsystemdだったので参考にしてくださいsystemctlいいえサービス単位ファイルが認識されないとします。各ユーザーインスタンスと通信している「バス」に接続できないと言いますsystemd

追加読書

関連情報