systemdでユーザー固有のサービスを実行しようとしています。私は専門職の管理者ではなく、開発者です。
現在、Ubuntu 16.04でソリューションをテストしていますが、Centos 7にソリューションを展開する予定です。実際に何も変わらないことを願っています。
しかし、今まで私はスクリプトで以下を行うことができました:
- コマンドラインで起動したときに私のサービスが効果的に実行されていることを確認してください
- ディレクトリを使用してユーザーjohnを作成します
/home/john
(このホームが必要です)が、パスワードはありません。私はそれがより安全であることを読んだ(そして私が間違いをしないことを願う...)。 /home/john/.config/systemd/user
サービスファイルを保存するディレクトリを作成します。- このドキュメントに従って残留を有効にします
だから今、私はジョンとのセッションを開いてテストし、サービスを開始したいのですが、うまくいきません。私はそれを次のようにしようとしています:
sam$ sudo su - john
john$ systemctl --user status my-service.service
そして、この不愉快なものを集めてください:
Failed to connect to bus: No such file or directory
とにかかわらずにstatus/start/stop/list-units
、私はそれ以上の状態の場所に置かコマンドは常に同じメッセージではありません。
johnのセッションに接続するコマンドは、次の行で記録されます。
$journalctl -e
Jun 15 18:16:23 sam-dell sudo[5681]: sam : TTY=pts/2 ; PWD=/home/sam/IdeaProjects ; USER=root ; COMMAND=/bin/su - john
Jun 15 18:15:02 sam-dell su[5491]: Successful su for john by root
Jun 15 18:15:02 sam-dell su[5491]: + /dev/pts/2 root:john
Jun 15 18:15:02 sam-dell su[5491]: pam_unix(su:session): session opened for user john by (uid=0)
Jun 15 18:15:02 sam-dell su[5491]: pam_systemd(su:session): Cannot create session: Already running in a session
... systemctl
コマンドを試行しても何も起こりません。
注:ユーザーにパスワードを追加しましたが、ユーザーのgnomeセッションで開いたターミナルからはまだ機能しませんsam
。しかし、私のユーザーはパスワードを持っているので、Ubuntuでgnomeを使用して接続できsystemctl --user status/start/stop
、john gnomeセッションにログインすることで問題なく実行できました。
誰もがアイデアを持っていますか?私は問題を間違ったやり方で取っているかもしれません。リモートサーバー上で別のユーザーとしてsystemdサービスを実行したいだけです。
助けてくれてありがとう