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


14

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

1つの方法はを入力することですsudo -u user commandrc.local、編集にrc.localはルート権限が必要です。

別の方法は、cron毎分起動して実行中のインスタンスをチェックすることですが、まずシステムを不必要に起動し、次に実行中のインスタンスをチェックする際に競合状態が発生する可能性があります。

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

回答:


16

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

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

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

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

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

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


crontab -e下にcronファイルを作成するのは異常/tmpですか?
好戦的なチンパンジー

@Elliottそれはあなたのエディター次第です。最終的に、ファイルはになります/var/spool/cron/crontabs
マルコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.