시스템 서비스가 너무 일찍 시작되어 자동으로 다시 시작하지 못했습니다.

시스템 서비스가 너무 일찍 시작되어 자동으로 다시 시작하지 못했습니다.

부팅할 때마다 pactl을 통해 마이크 소스와 볼륨을 수동으로 수정해야 합니다. 그렇지 않으면 무작위로 변경됩니다.

나는 이것에 대한 스크립트를 만들었습니다 - mic.sh 그리고 단독으로 실행하면 예상한 대로 정확하게 작동합니다.

저는 이것을 수동으로 수행할 필요 없이 부팅할 때마다 시작되는 시스템 서비스로 바꾸려고 합니다.

문제는 (내 생각에는) 서비스가 너무 일찍 시작되어 펄스 오디오에 연결하지 못한다는 것입니다.

그래서 서비스 실패 시 30초 간격으로 5번 다시 시작하도록 변경했습니다.

자동 재시작도 작동하지 않습니다. 너무 일찍 시작하는 것이 문제가 아닌가 하는 생각이 듭니다. 왜냐하면 서비스가 마지막으로 다시 시작(5번째) 완료되기를 기다리는 동안 스크립트를 수동으로 실행할 수 있었고 제대로 작동했기 때문입니다.

[Unit]
Description=mic.sh
StartLimitIntervalSec=240
StartLimitBurst=5

[Service]
Restart=on-failure
RestartSec=30
ExecStart=/home/rain/sh/mic.sh

[Install]
WantedBy=multi-user.target


##############################


rain@pop-os:~$ sudo systemctl status micsh.service
● micsh.service - mic.sh
     Loaded: loaded (/etc/systemd/system/micsh.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Sat 2020-07-25 23:40:11 IST; 17s ago
    Process: 1993 ExecStart=/home/rain/sh/mic.sh (code=exited, status=1/FAILURE)
   Main PID: 1993 (code=exited, status=1/FAILURE)

Jul 25 23:40:11 pop-os systemd[1]: micsh.service: Main process exited, code=exited, status=1/FAILURE
Jul 25 23:40:11 pop-os systemd[1]: micsh.service: Failed with result 'exit-code'.



rain@pop-os:~$ sudo systemctl status micsh.service
● micsh.service - mic.sh
     Loaded: loaded (/etc/systemd/system/micsh.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Sat 2020-07-25 23:40:41 IST; 8s ago
    Process: 2130 ExecStart=/home/rain/sh/mic.sh (code=exited, status=1/FAILURE)
   Main PID: 2130 (code=exited, status=1/FAILURE)



rain@pop-os:~$ sudo systemctl status micsh.service
● micsh.service - mic.sh
     Loaded: loaded (/etc/systemd/system/micsh.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2020-07-25 23:42:11 IST; 1min 11s ago
    Process: 2238 ExecStart=/home/rain/sh/mic.sh (code=exited, status=1/FAILURE)
   Main PID: 2238 (code=exited, status=1/FAILURE)

Jul 25 23:42:11 pop-os systemd[1]: micsh.service: Scheduled restart job, restart counter is at 5.
Jul 25 23:42:11 pop-os systemd[1]: Stopped mic.sh.
Jul 25 23:42:11 pop-os systemd[1]: micsh.service: Start request repeated too quickly.
Jul 25 23:42:11 pop-os systemd[1]: micsh.service: Failed with result 'exit-code'.
Jul 25 23:42:11 pop-os systemd[1]: Failed to start mic.sh.```

답변1

SystemD는 로그인하기 전 시스템 시작 시 발생합니다.

.desktop에 파일을 넣어야 합니다 $HOME/.config/autostart.

관련 정보