しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

/etc/init.d/xxx start と service xxx start の違い

下の2つの違いがよく分からなかったので調査。

/etc/init.d/xxx start
service xxx start

2つの違い

serviceのコードを見たけどshell力が低くてイマイチ分からず。
仕方なくGoogleで検索しました。

検索したところ、両者では環境変数の設定が違ってくるようです。
コードを見てみるとたしかにenv -iを利用しています。

env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}

まとめ

serviceを使った場合はユーザー毎の環境変数を引き継がない

その為実行したユーザーによって動きが変わる事がないので良い!
しかしスクリプトはrootでしか実行しないからあんまり関係ないかも。
その辺が良く分からないけどとりあえず今後はservice使ってみます。