起動時にユーザーサービスを開始しようとしています。
LinuxベースのTableauの場合(Ubuntu 19.04サーバー、GUIなし)
Tableau は、サービスを実行するための管理者以外のユーザーを作成します。システムサービスを作成します
/etc/systemd/system/[email protected]
ここにいる
[Unit]
Description=User Manager for UID %i
After=systemd-user-sessions.service
[Service]
LimitNOFILE=131072
LimitNPROC=32768
User=%i
PAMName=systemd-user
Type=notify
PermissionsStartOnly=true
ExecStartPre=/bin/loginctl enable-linger %i
ExecStart=/lib/systemd/systemd --user
Slice=user-%i.slice
KillMode=mixed
Delegate=yes
TasksMax=infinity
Restart=always
RestartSec=15
[Install]
WantedBy=default.target
ホストを再起動し、無関係なユーザーとしてログインして確認すると、問題が実行に明らかに関連していることがわかります。systemctl status [email protected]
systemd --user
自分で試してみると、ディレクトリがsudo su - tableau
ないと文句を言うか、/run/user/$(id -u)
$ XDG_RUNTIME_DIRが定義されていないかスライスすることはできません
journalctl -xe
。
したがって、pam_systemdは表示または一覧表示できず、tableauが怒って実行されるように/run/user/ID
設定されていないため、サービスが失敗します。$XDG_RUNTIME_DIR
systemd --user
user@997
コンソールまたはSSHを介しても「tableau」ユーザー(ID 997)にログインすると、「ログイン」セッションが作成されたように見え、すべてが続行され、すべてがいっぱいになり、通常どおり開始され/run/user/997
ます。その後、/run/user/997
サービスが作成され、サービスが一度ロードしようとすると問題なくログアウトでき、enable-linger
すべてuser@997
が正常に機能します。
私のポイントはドキュメントで見たことです(初期プロセスは基本的にこの設定を持っているので、おそらくTableauの経験から来たようです)。User=997 ; PAMName=systemd-user
しなければならない 働いている。そしてしなければならないsystemdを介してuid 997 / tableauでプロセスを作成しますが、何らかの理由で地域を定義しません/run/user/997
。
ディレクトリが見つかると/run/user/997
すぐにサービスをロードし、Tableauは内部初期化プロセスを開始します。