Linuxを触りはじめてしばらくすると、「このプログラム、毎回手動で起動するの面倒だな」と思う場面が出てきます。
今回マウスとキーボード共有ツールであるInput LeapをLubuntuで使う中で「これ自動起動させたいな」と思ったのがきっかけでした。
調べてみると、Linuxには“自動起動”にもいくつか種類があるようです。単純な方法と、少し厳密な方法。その違いが最初はわかりにくかったので、自分なりに整理してみます。
自動起動・常駐の考え方
まず前提として、Linuxでは「いつ起動させたいのか」が重要なようです。
大きく分けるとこうなります。
- OS起動と同時に動いてほしいもの
- ログイン後に動けばいいもの
この違いが、そのまま方法の違いになります。
サーバーやネットワーク関連のものはログイン前から動いていないと困ります。でも、GUIツールやトレイ常駐アプリはログイン後で十分だったりします。
この区別ができると、選択がだいぶ楽になります。
簡単な方法:デスクトップ環境の自動起動
自分が使っているLubuntu(LXQt)には「Session Settings → Autostart」という設定があります。ここにコマンドを登録すると、ログイン後に自動で実行されます。

これはLubuntu固有の機能というより、デスクトップ環境(DE)が提供している仕組みです。
他のディストリビューションでも、同じような設定があります。
- Ubuntu(GNOME)→「Startup Applications」
- KDE Plasma →「自動起動」設定
- XFCE →「Session and Startup」
見た目や設定画面は違いますが、裏側の仕組みはほぼ共通です。
実体は ~/.config/autostart/ に置かれる .desktop ファイルです。
XDG Autostartとは
この仕組みは、特定のディストリビューション独自のものではなく、「XDG Autostart」という共通仕様に基づいています。
ざっくり言うと、
- ログイン時に
~/.config/autostart/や/etc/xdg/autostart/を読み込み- そこにある
.desktopファイルを実行する
というルールです。
そのため、LXQtから別のデスクトップ環境に乗り換えても、同じディレクトリ構造がそのまま使われることが多いです。
Linuxのデスクトップ界隈では、このXDG仕様が“共通言語”のような役割を果たしているみたいです。
流れとしてはこうです。
- ログインする
- デスクトップ環境が起動する
- 登録されたアプリが実行される
これはWindowsのスタートアップにかなり近い感覚です。
今回のInput Leapクライアントのように「GUIが起動してから動けばいいもの」なら、この方法で十分でした。
ただし、この方法は
- 落ちても自動再起動しない
- GUIが前提
という特徴があります。
厳密な方法:systemdサービス
もうひとつが systemd を使う方法です。
systemdはLinuxの起動管理システムで、いわばWindowsの“サービス”に近い存在です。
.serviceファイルを作ることで、
- OS起動時に開始
- ログイン不要で常駐
- 依存関係の制御
- 自動再起動設定
といったことができます。
たとえばWebサーバー、データベース、Samba、SSHなどはこの方法で管理されます。
また、systemdには
- システムサービス(rootで動く)
- ユーザーサービス(ユーザー単位で動く)
の2種類があります。
正直なところ、個人デスクトップ用途では少しオーバースペックに感じることもあります。ただ、安定性や再起動制御が必要ならこちらが適しています。
どちらを選ぶべきか
自分が考えるところの基準はこんな感じです。
GUIツールなら
- ログイン後でよい
- トレイ常駐アプリ
- 個人用ユーティリティ
→ デスクトップ環境の自動起動で十分
サーバー用途なら
- ログイン前から必要
- 他サービスに依存する
- 落ちたら困る
→ systemdサービス
Input Leapクライアントの場合は完全に前者でした。
他に手段はある?
調べてみると、他にもいくつか方法があります。
- crontab の @reboot
- .profile や .bashrc に書く
- ウィンドウマネージャの autostart ファイル
ただし、これらは用途が限定的だったり、管理が曖昧になりやすい印象があります。
いまの主流は
- GUI用途 → XDG Autostart
- サービス用途 → systemd
という住み分けになっているようです。
まとめ
Linuxの「自動起動」はひとつの仕組みではなく、起動タイミングによって分かれています。
最初は全部同じに見えますが、
- ログイン後でいいのか
- OS起動と同時でないと困るのか
を考えると整理できます。
今回のInput LeapはLXQtの自動起動で十分でした。
逆に、サーバー的なものを動かすならsystemdに触れる必要が出てきます。
Linuxは選択肢が多い分ややこしく見えますが、目的から逆算すると意外とシンプルなのかもしれません。

で日本語入力環境を設定する-120x68.jpg)
コメント