systemd.service
방금 하나 실행하도록 설정했어요CMUS(콘솔 뮤직 플레이어)로 분리됨화면시작시.
나아니요사용자가 시스템에 로그인하지 않고 원격으로 부팅할 때 소리가 납니다.
나하다사용자로 로그인하면 소리가 들리고 서비스가 실행되도록 설정했습니다. 하지만 리모콘을 통해 볼륨을 변경할 수 없습니다. "믹서가 켜지지 않음"이라고 표시됩니다.
그냥 cmus를 시작하면 수동으로 사용자로 로그인하는 화면으로 분리되어 다시 로그아웃이 되고,하다리모콘을 통해 사운드와 믹서가 있습니다.
루트로 실행되도록 서비스를 설정하는 경우(여러 가지 이유로 이를 수행하고 싶지 않음)하다사운드와 믹서가 있습니다.
불행 Environment=XDG_RUNTIME_DIR=/run/user/1000
하게도 제안대로여기도움이 되지 않습니다(1000이 맞습니다).
그래서 질문은: alsa
내 systemd-service에서 사용자로 완전히 작동하기 위해 여기서 누락된 것은 무엇입니까?
현재 단위는 이렇습니다.
[Unit]
Description=cmusd (consolemusicplayer in screen with remote-web-server)
After=syslog.target network.target sound.target
[Service]
Type=forking
User=myusername
WorkingDirectory=/home/myusername/cmus_daemon
ExecStart=/home/myusername/cmus_daemon/cmusd.init start
ExecStop=/home/myusername/cmus_daemon/cmusd.init stop
Environment="HOME=/home/myusername" "USERNAME=myusername"
[Install]
WantedBy=multi-user.target
기본적으로 어디서부터 cmusd.init
시작 해야 할까요?
screen -dmS cmusplayer cmus --listen $CMUS_IP
내 시스템은 광 오디오가 있는 작은 보드의 우분투 서버 19.10입니다.
답변1
글쎄, 더 많은 검색과 실험 끝에 해결책을 찾았습니다. 적어도 이 우분투에서는 매력적으로 작동합니다. Group=audio
환경이 필요하지 않습니다.
[Unit]
Description=cmusd (consolemusicplayer in screen with remote-web-server)
After=syslog.target network.target sound.target
[Service]
Type=forking
User=myusername
Group=audio
WorkingDirectory=/home/myusername/cmus_daemon
ExecStart=/home/myusername/cmus_daemon/cmusd.init start
ExecStop=/home/myusername/cmus_daemon/cmusd.init stop
[Install]
WantedBy=multi-user.target