ユーザーがログインしたときに実行されるサービスを作成しようとしています。
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
。