起動するたびにターミナルコマンドを自動的に実行するには?

起動するたびにターミナルコマンドを自動的に実行するには?

Ubuntuのインストールには小さなオーディオの問題がありましたが、これは端末でコマンドを実行して解決できました(root権限は不要)。

pacmd load-module module-alsa-sink   device=hw:0,0 &&
pacmd load-module module-alsa-source device=hw:0,0

唯一の問題は、再起動するたびにこれを行う必要があることです。このタスクをどのように自動化できますか?私はWayland / Gnome 42を使用していることに注意してください。

答え1

答え2

この問題に対する解決策はオンラインにたくさんあります。いくつかの答えを見てください。ここそしてここ

簡単な質問はこれです(少なくともDebianのようなOSの場合)。ユーザーがシステムにログインしなくてもこれらのコマンドを実行する必要がないと仮定し、スケジュールをスケジュールすると、プロセスは入力と同じcronjobくらい簡単です。コンソールから:

crontab -e

コンソールはどのエディタを使用するかを尋ねます。私は通常デフォルトのオプションであるUbuntuではnanoをそのままにしているので、次のキーを押すだけですEnter

no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed 

コンソールには以下が表示されます。 ここに画像の説明を入力してください。

最後の行に移動して次の行を貼り付けます。

@reboot sleep 10 && pacmd load-module module-alsa-sink device=hw:0,0 
@reboot sleep 11 && pacmd load-module module-alsa-source device=hw:0,0

説明: @reboot ワイルドカードは、crontabオペレーティング・システムが特定のポイントに達した後、次のことを行います。私は実行されるコマンドと言及されたポイントの間に遅延を追加したいと思います。したがって、コマンドは sleep

次に、を押してCtrl+Xから文字を入力してyもう一度押します。Enter

今テストしてみてください。


追加:crontab以下を実行していつでもログを確認できます。

grep CRON /var/log/syslog

答え3

SystemDオートメーション機能が利用可能です。 .xinitrcにコマンドを追加することをお勧めしますが、Waylandを使用しているので動作しないようです。 /etc/rc.dにコマンドを含むスクリプトを追加することもできます。 (スクリプトがある場合はSystemDにスクリプトがあると確信していますが、OpenRCを使用しているのでわかりません。)

答え4

Ubuntuバージョン/DEについては言及していないか、起動時にこれを行う必要があるのか​​、ログイン後に実行できるのかについては言及していません。ログイン後に可能であれば、セッションの自動起動に追加できます。そうでない場合は、/etc/xdg/autostartに追加したり、コンピュータから.xinitrcを削除したりできます。それ以外の場合は、Artemのアドバイスを参照してください。

関連情報