rc.localを利用したubuntu/LinuxMintのPC起動時の処理実行
1.概要
ubuntu環境で長時間稼働する環境を構築したのですが、処理の起動と処理の終了を組み込む必要がありました。処理の終了は時間指定による終了が良いと考えて、cronを組み込むことにしました。処理の起動はrc.localを利用してPCの電源オンに合わせて処理を開始することで実現をしました。
以前、Slackwareを利用しているときには、/etc/rc.localは既定値が用意されていて内容を修正するだけでした。ubuntuもLinuxなので同じであると思って作業を開始したのですが、/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
私は最初の方式を利用しました。
・ubuntu/LinuxMintでmp3 player向けのplaylistの作成
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の作成
コメント
コメントを投稿