コマンドを使用してコマンドを実行してsu -s
プロセスを開始します。これは、root ユーザーがプロセスを所有したくないためです。
私はコマンドを実行してこれを試しました
su -s "$CATALINA_HOME/bin/catalina.sh run" tomcat
返品su: /opt/apache-tomcat/bin/catalina.sh run: No such file or directory
su -s
このエラーを生成せずにパラメータを含むコマンドを実行するにはどうすればよいですか?
答え1
走っているならsu
asをroot
使用して-s
別のシェルを指定し(ここではユーザーに有効なシェルがないため、root
必要に応じて実行)、実行するコマンドを指定できます。tomcat
-c
su -s /bin/sh -c "$CATALINA_HOME/bin/catalina.sh run" tomcat
あなたは見つけることができますstart-stop-daemon
便利です。使用するユーザーとグループ、デーモンの起動方法などを指定するための多くのオプションがあります。tomcat8
初期化スクリプトDebian で使用すると便利なインスピレーションを得ることができます。あるいは、systemdユニットやシステムの初期化に適したものを作成することを検討してください。
答え2
-s
コマンドのスイッチは、su
指定されたユーザーのシェルを変更することです。実行するコマンドの前には-c
スイッチが必要です。
したがって、探しているコマンドは次のようになります。
su -s /bin/bash -c "$CATALINA_HOME/bin/catalina.sh run" tomcat
答え3
他に質問がある場合は、ご覧ください。https://stackoverflow.com/questions/37753783/そしてシグナル9によってシェルスクリプトが終了したかどうかを知る方法はありますか?あなたの質問に欠けているのは、起動時にTomcatを実行しようとしていることです。
この場合:
start-stop-daemon
適していません。- どちらもありません
su
。 - Poor Man's Daemon SupervisorはシェルスクリプトでPIDファイルの管理も行いません。
これらのすべては、新興企業がすることを模倣しようとします。まっすぐ。su
特に権限を削除するツールではないので、使用するのは悪いです。それはツールです次へ追加ログインセッションの権限。今日では、さまざまなログインセッション管理サブシステムの背後に参加しているため、デーモンからスーパーユーザー権限を削除する(はるかに簡単な)作業には特に適していません。 start-stop-daemon
ただ重複しています。そしてUpstartはプロセスIDを知っています。その子たち。
開始作業ファイルのセクションsetuid
および(該当する場合)setgid
セクションを使用して、権限のないユーザーの権限を削除します。
setuid 浮気
catalina.sh
(実際には必要ありません)を介して電話する場合は、sh -c
システム化されたHouse of Horrorエリアに属しないでください。 (upstartがこれらのタスクを実行すると、状況は少し深刻です。)daemontools方法でタスクを実行し、シェルをスクリプトに接続してシェルのコマンドを介して呼び出して、exec
upstartがデーモンを直接子として扱うようにします。 (そして新興企業expect
もこの事実を知って正しいスタンザを使うようにしてください。)
catalina.sh
ただし、upstartはsystemdや他のサービス管理ツールと同様に自分自身を呼び出すことができるため、明示的なシェルは必要ありません。したがって、インタプリタが/bin/bash
実際にスクリプトの正しいインタプリタであることを確認することを心配する必要はありません。
$CATALINA_HOME/bin/catalina.shを実行して実行します。
追加読書
- ジェームズハントとクリントバイラム(2014)。 」
setuid
」。 ヌボリッチレシピ。 - ジェームズハントとクリントバイラム(2014)。 」
setgid
」。 ヌボリッチレシピ。 - ジェームズハントとクリントバイラム(2014)。 」
console log
」。 ヌボリッチレシピ。 - ジョナサンデボインポラード(2014)。
su
ユーザーの削除権限を乱用しないでください。 よく与えられる答えです。 - ジョナサンデボインポラード(2015)。無意味な追加レイヤーでApache Tomcatをラップする 体系化された恐怖の家。
- ジョナサンデボインポラード(2015)。 システム化された恐怖の家。一般的な答え。
- https://superuser.com/a/723333/38062
- https://superuser.com/questions/683855/