- 현재 Ubuntu에서 서비스 단위 파일을 작성 중입니다. 사용자에 대해 서비스를 활성화하고 싶습니다.사용자A오직. UserA가 로그인하면 서비스가 자동으로 실행되지만 다른 사용자에 대해서는 실행되지 않습니다. 어떻게 해야 하나요?
아래는 /etc/system에 배치한 유닛 파일입니다.
[Unit]
Description=Test unit
[Service]
ExecStart=/bin/sh -c 'echo test > /home/UserA/sysdworking'
[Install]
WantedBy=multi-user.target
- 이것이 일반적인 관행입니까? 아니면 모든 서비스가 시스템 전체에 걸쳐 있어야 합니까?
답변1
당신이 찾고있는 것은시스템 사용자단위. 유닛 파일을 에 넣으면 ~/.config/systemd/user
로그인할 때 systemd가 자동으로 서비스를 시작합니다.
위 링크에서:
/etc/pam.d/system-login의 기본 구성에 따라 pam_systemd 모듈은 사용자가 처음 로그인할 때 자동으로 systemd --user 인스턴스를 시작합니다. 프로세스는 사용자에게 세션이 있는 동안 존재하며 사용자의 마지막 세션이 닫히자마자 종료됩니다. #systemd 사용자 인스턴스의 자동 시작이 활성화되면 인스턴스는 부팅 시 시작되고 종료되지 않습니다. systemd 사용자 인스턴스는 사용자 서비스 관리를 담당하며 소켓 활성화, 타이머, 시스템 종속성 또는 cgroup을 통한 엄격한 프로세스 제어와 같은 systemd의 모든 이점과 함께 데몬 또는 자동화된 작업을 실행하는 데 사용할 수 있습니다.