Debian で bash 起動スクリプトを提供するサービスを作成する

Debian で bash 起動スクリプトを提供するサービスを作成する

サーバーはsystemdなしでDebian 7 Wheezyを実行しています。

彼のホームディレクトリにPerlbrewがインストールされているDebianユーザーがいます。ユーザーがMojoliciousアプリケーションを実行しています。アプリケーションが正しく機能するには、Perlbrew bashrcファイルをロードする必要があります。現在、ユーザーはログインしてhypnotoad appデーモンを起動するアプリケーションを実行します。私はアプリケーションとそれに関連するすべてをユーザーのホームディレクトリに分離しようとしていますが、Perlシステムを混乱させたくありません。しかし、アプリケーションをサービスとして実行し、起動時に起動するなどのことをしたいのですが、ユーザーとしてサービスを実行するときにPerlbrew bashrcからリソースを取得する方法がわかりません。

簡単に言えば、私の質問はタイトルにまとめられていますが、基本的にbashrcファイルからサービスのソースコードを取得する方法を知りたいです。

答え1

試してみましたsu <user> -l -c <cmd>か?
これらのrcスクリプトはrootユーザー(id = 0)として実行されるため、rootとしてシステムで定義されているすべてのユーザーの権限でプロセスを作成できます。

たとえば、

su root -l -c "ls /tmp"

どこ:

  • -c: コマンドを実行します。
  • -l:指定されたユーザーとしてログインします。

答え2

もちろん、システムの起動時にrootとして実行されるスクリプトとしてユーザーの.bashrcをインポートしないでください。 2つの提案:

サービスを開始するスクリプトを作成します(mystart.shと仮定します)。このスクリプトは.bashrcをインポートしてからアプリケーションを起動できます。

#!/usr/bin/bash
. .bashrc
hypnotoad app

起動時にスクリプトを実行するには、ユーザーのcrontabを使用することをお勧めします。ユーザーが配置できるようにします。

@reboot mystart.sh

彼らのcrontabから。これはユーザーとして実行され、後で無効にするか置き換えるかどうかはユーザー次第です。

関連情報