起動するたびに、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
。