
부팅 시 사용자 서비스를 시작하려고 합니다.
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가 내부 초기화 프로세스를 시작합니다.