rc.localを利用したubuntu/LinuxMintのPC起動時の処理実行

1.概要

ubuntu環境で長時間稼働する環境を構築したのですが、処理の起動と処理の終了を組み込む必要がありました。処理の終了は時間指定による終了が良いと考えて、cronを組み込むことにしました。処理の起動はrc.localを利用してPCの電源オンに合わせて処理を開始することで実現をしました。

ubuntu-22.04起動時に実行したい処理がある場合、/etc/rc.localにその内容を記述します。ネットを調べて異なる設定ファイルの記述があったのですが、ubuntu-22.04.5で従来方式で動作したのでその内容を記述します。

以前、Slackwareを利用しているときには、/etc/rc.localは既定値が用意されていて内容を修正するだけでした。ubuntuもLinuxなので同じであると思って作業を開始したのですが、/etc/rc.localが規定値で存在しません。別の手段があると考えて、アレコレ調べました。

2.詳細

/etc/rc.localを作成して、その中に実行した処理を記述後、実行権限を与えます。

$ sudo vi /etc/rc.local

内容は以下のテスト事例とします。

#!/bin/bash
echo "Test rc.local"

実行権限を与えます
$ sudo chmod +x /etc/rc.local

/etc/rc.localが実行される背景にはsysytemdの設定が存在します。

最初の参考資料には、下記設定があり上記/etc/rc.localの設定で動作するとのことです。
/lib/systemd/system/rc-local.service

次の参考資料には、下記設定を作成して/etc/rc.localを動かすことができるとのことです。
/etc/systemd/system/myservice.service

私は最初の方式を利用しました。

3.所見

/etc/rc.localは標準で用意されていません。ファイルが存在しないのでどうしたら良いかわかりませんでした。slackwareを利用している頃は頻繁に利用していましたが、既定値で動かしたいアプリが余りなく、手作業で起動することが多かったのだと思います。実際に、やろうとしたとき、あるはずの/etc/rc.localがなかったので、ネットで時間をかけて調べました。

ディストリビューションのクセは、このような場所に現れるものなのでしょう。/etc/rc.localは存在するものと考えていたことは、Slackwareを長く利用していたことから感じていたことです。ubuntuにはubuntuのやり方があるということを今回勉強になりました。

4.追加

LinuxMInt環境には、「自動開始させるアプリ」の設定ができます。標準でアップデートマネージャ、システムレポート、印刷キューのアプレットなどが自動実行されるように定義されています。この機能はPCが起動された時に実行するコマンドを登録と実行ができます。

利用者権限で追加設定ができるので、LinuxMint環境ではrc.localではなく、この機能を利用してshellを実行しています。root権限が必要なsudoを含むコマンドも登録することができるので、とても便利です。既定値で登録されている処理も不要ならば削減できます。

設定方法は、システム設定から自動開始させるアプリを選択後、+ボタンを押して、カスタムコマンドを選択します。名前、コマンド、説明を設定して、追加登録です。開始遅延時間を設定することができますが、すぐに完了するコマンドであれば、既定値で問題ありません。

参考

[本ブログ内参照]
・ubuntu/LinuxMintでmp3 player向けのplaylistの作成

コメント