広告 Linux

一般ユーザーでinit的なスタートアップ処理を行う

crontabで以下のように記述しておくと、
システムの起動時に処理を実行できるそうです。

@reboot /path/to/script

正確に言うと、システムの起動ではなく、crondの起動がトリガーとなって処理が走るようです。

一般ユーザーでスタートアップ処理を走らせたいシーンてあんまりないし、
こんなところにスタートアップ処理を書きたいとは思わないです。

けど、どうしてもroot権限使えないけどスタートアップ処理走らせたいとかの場合はこれ使えばいいんですかねー。

crondの再起動時がトリガーになって、処理が走るのでOSが再起動した場合は問題ないけど
何らかの目的やトラブルが起きて、crondを再起動したら処理が走るのでは?と思いググったら以下の情報に出会いました。

http://blog.kenichimaehashi.com/?article=13604950680

CentOS 6 以降であればcrondの再起動があってもcronは走らないようです。
実際にCentOS 6が乗っかっているVMで試したところ、cronは走りませんでした。

また、debian系はどうかと思い、手元のDebian7のVMで走らせてみたところ、こちらもcronは走りませんでした。

新し目のOSを使っていれば一般ユーザーでも「initっぽく」処理を走らせる事ができますね。

ただ、cronの実装によって挙動が異なるため、同じcrontabを書いても
自分の環境で@rebootが意図通りに動作するかきちんと確認してから設定を入れないと怖いですね。

他のディストリビューションやUnixについては未検証ですので、ご注意ください。

Sponsor Link

-Linux