web-dev-qa-db-ja.com

root以外のユーザーがバックグラウンドプログラムを自動起動する方法

非rootユーザーとして、システムの起動時にバックグラウンドジョブを実行したいと考えています。 root権限を必要としないサービスのようなものです。それを行う方法はありますか?

1つの方法は、Sudo -u user commandrc.localに入れることですが、rc.localを編集するにはroot権限が必要です。

もう1つの方法は、cronから毎分起動して実行中のインスタンスを確認することですが、最初にシステムを不必要にウェイクアップし、次に、実行中のインスタンスの確認で競合状態が発生する可能性があります。

3番目の方法は~/.bash_profileで実行することですが、ユーザーログインなしで起動したいと思います。

14
Wu Yongzheng

バージョンに@reboot機能がある場合は、cronを使用できます。から man 5 crontab

最初の5つのフィールドの代わりに、8つの特別な文字列の1つが表示される場合があります。

  string         meaning
  ------         -------
  @reboot        Run once, at startup.
  …

Root権限なしでcrontab -eコマンドを使用して、ユーザーローカルのcrontabを編集できます。次に、次の行を追加します。

@reboot /usr/local/bin/some-command

これで、コマンドはブート時に1回実行されます。

17
Marco