다음은 gdm 사용자의 홈 디렉토리에서 실행되는 시스템 사용자 단위를 사용하는 방법입니다.
다음 파일을 다음과 같이 저장하십시오 /var/lib/gdm3/.config/systemd/user/drumroll.service
.
[Unit]
Description=Drumroll
Requires=pulseaudio.socket
After=systemd-user-sessions.service
[Service]
Type=simple
Restart=no
ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg
[Install]
WantedBy=default.target
위의 시스템 단위는 gdm 사용자 컨텍스트에서 pulseaudio가 시작되었는지 확인하고 paplay
명령을 실행해야합니다 (시도하지 canberra-gtk-play
않았지만 제대로 작동한다고 생각합니다).
After=systemd-user-sessions.service
시스템이 사용자 로그인을 준비한 후에 만 서비스를 시작합니다. ( http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html 참조 )
그런 다음 다음을 실행하십시오.
$ sudo mkdir -p /var/lib/gdm3/.config/systemd/user/default.target.wants
$ sudo ln -s /var/lib/gdm3/.config/systemd/user/drumroll.service /var/lib/gdm3/.config/systemd/user/default.target.wants/drumroll.service
$ sudo chown gdm:gdm /var/lib/gdm3/.config/systemd/user/{drumroll.service,default.target.wants}
이러한 마지막 명령은 gdm 사용자의 시스템 세션이 시작될 때 장치가 자동으로 시작되도록합니다.
systemctl은 시스템 세션 또는 호출 사용자 세션에 연결하는 데 제한이 있기 때문에 오류를 확인하는 것은 약간 까다 롭습니다 . sudo를 사용하여 gdm을 호출하는 사용자를 쉽게 만들려면 시스템 환경의 사용자 세션에 연결할 수 있도록 일부 환경을 설정해야합니다.
$ sudo -u gdm XDG_RUNTIME_DIR="/run/user/$(id -u gdm)" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status drumroll
● drumroll.service - Drumroll
Loaded: loaded (/var/lib/gdm3/.config/systemd/user/drumroll.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2018-06-26 23:35:05 CEST; 36min ago
Process: 1238 ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg (code=exited, status=0/SUCCES
Main PID: 1238 (code=exited, status=0/SUCCESS)
17.10에서 18.04로 시도하지는 않았지만 17.10에서 제대로 작동하지 않는 이유는 알 수 없습니다.