Ubuntu でスタートアップ アプリケーションを管理する方法
システムにログインした直後に特定のプログラムを起動することがよくあります。Ubuntu が起動するたびに、これらの各プログラムを手動で検索して起動するのは時間のかかるプロセスです。
一部の Linux プログラムは、起動時に起動するように設定されています。ただし、Ubuntu の起動時に、お気に入りのプログラム、スクリプト、またはコマンドを自動的に実行するように設定することもできます。
systemd を使用して起動時にプログラムを起動する
systemd は、システム マネージャーまたはサービス マネージャーとも呼ばれ、Ubuntu の起動時に最初に開始されるプロセスです。systemd サービスは通常、ほとんどの Linux プログラムにデフォルトで含まれています。
systemd を使用すると、システムの起動時にプログラムが自動的に起動するように設定することもできます。systemctl コマンドを使用して、systemd サービスを管理できます。
プログラムの systemd ユニット ファイルが存在するかどうかを確認するには、次のコマンドを使用します。
systemctl list-unit-files | grep <program-name>
システムの起動時に Apache を自動的に起動したいとします。次のコマンドを使用して、systemd ユニット ファイルが存在するかどうかを確認します。
systemctl list-unit-files | grep apache2
存在する場合は、次のような出力が表示されます。
ここで、Apache が起動時に自動的に起動するように設定するには、次のコマンドを実行します。
sudo systemctl enable apache2
起動時に Apache サービスが有効になっているかどうかを確認するには、次のコマンドを使用します。
sudo systemctl is-enabled apache2
システムの起動時にサービスが自動的に実行されるように設定されている場合、出力は有効に戻ります。
Ubuntu の起動時にプログラムが自動的に実行されないようにするには、次のコマンドを使用してそのサービスを無効にします。
sudo systemctl disable apache2
特定のプログラムに systemd ユニット (システム サービス) が同梱されていない場合は、その systemd ユニット ファイルを作成して、システムの起動時に実行できます。ユニット ファイル (たとえばtest.service ) を作成するには、次のコマンドを実行します。
sudo nano /lib/systemd/system/test.service
次に、ユニット ファイルに次のコード行を追加します。起動時に実行するプログラムへのパスを追加して、 ExecStartディレクティブの値を必ず変更してください。
プログラムに加えて、 ExecStartディレクティブでパスを指定することにより、起動時にコマンドまたはスクリプトを実行することもできます。
[Unit]
Description=This is a test service file.
[Service]
Type=simple
ExecStart=<Full-Path-of-Command-or-Script-or-Program>
[Install]
WantedBy=multi-user.target
完了したら、ユニット ファイルを保存して閉じます。
次に、このユニット ファイルに必要なアクセス許可を割り当てます。
sudo chmod 644 /etc/systemd/system/test.service
これで systemd ユニット ファイルが作成され、上記のコマンドを使用して起動時にプログラムを管理する準備が整いました。
Ubuntu で GNOME の起動アプリケーションを使用する
頻繁に使用するプログラムを起動時に起動するもう 1 つの方法は、GNOME の起動アプリケーションを使用することです。Superを押して「 startup applications」と入力すると、アプリケーション メニューから起動できます。または、Alt + F2を押して、[コマンドの実行] ダイアログ ボックスに次のコマンドを入力して起動することもできます。
gnome-session-properties
これにより、起動時に実行するように既に設定されているプログラムのリストが表示される[スタートアップ アプリケーションの設定]ウィンドウが起動します。
新しいプログラムをリストに追加するには、[追加] をクリックします。これにより、[スタートアップ プログラムの追加]ウィンドウが開きます。
[名前]フィールドに、追加するプログラムの名前を入力します。次に、[コマンド]フィールドに、プログラムの実行可能バイナリへのフル パスを指定します。
プログラムへのフル パスを見つけるには、 which コマンドの後にプログラム名を指定します。たとえば、Slack の実行可能バイナリを見つけるには、コマンドは次のようになります。
which slack
または、[参照] をクリックしてプログラムの実行可能ファイルを見つけることもできます。オプションですが、プログラムに関連するコメントを追加することもできます。完了したら、[追加] をクリックします。
スタートアップ プログラム リストにプログラムが表示されます。Ubuntu マシンにサインインすると、選択したプログラムが自動的に起動します。
Ubuntu で起動プログラムを遅らせる
起動時に自動的に起動したいアプリケーションがいくつかあるかもしれませんが、ログイン直後は必要ありません。これらのアプリケーションの起動に遅延を追加して、すべてのアプリケーションが同時に起動しないようにすることができます。これにより、コンピューターの負荷も軽減されます。
[スタートアップ アプリケーションの設定] ウィンドウで、遅延させたいプログラムを選択し、[編集] をクリックします。[コマンド] フィールドで、コマンドの前にsleep xを追加します。xは、アプリケーションを開くまでの待機時間 (秒単位) です。
たとえば、システムの起動から120 秒後にSlack を起動したい場合は、次のように追加します。
sleep 120; slack
スタートアップ プログラム リストからプログラムを削除するには、[スタートアップ アプリケーションの設定]ウィンドウを起動し、アプリケーションを選択して [削除] をクリックします。
cron ジョブを使用して Ubuntu の起動時にプログラムを起動する
Linux の cron ジョブは、プログラム、コマンド、またはスクリプトをスケジュールして、指定した時間または間隔で自動的に実行する方法を提供します。cron ジョブを使用すると、手動で操作することなく、システムの起動時に Ubuntu プログラムを自動的に実行することもできます。
cron ジョブは、crontab ファイルのエントリとして定義されます。テキスト エディタを使用して crontab ファイルを直接編集しないでください。代わりに、次のコマンドを使用して編集します。
crontab -e
crontab ファイルを編集するエディターを選択します。次に、起動後に実行される cron ジョブを追加するには、次の構文を使用します。
@reboot <command-or-script>
たとえば、次の cron ジョブは、システムの起動後にディスク容量をチェックし、出力を~/disk-space.txtファイルに保存するようにシステムに指示します。
@reboot df -h >> ~/disk-space.txt
crontab ファイルを保存して終了します。
Ubuntu の起動時に実行されているプログラムを削除するには、crontab ファイルからその cron ジョブ エントリを削除するだけです。
Ubuntu の起動時に必要なプログラムを起動できるようにする
起動時にお気に入りのプログラムがすでに開いていると、システムにログインした後すぐに使用を開始できるため、非常に便利です。ただし、起動プログラムが多すぎると、起動プロセスが長引く可能性があります。
したがって、起動時に必要なプログラムのみを有効にし、デフォルトで有効になっている時々使用されるプログラムを無効にすることをお勧めします。
コメントを残す