'サービス開始'を使用しているときにシステムドロップオプションが表示されるのはなぜですか? 'サービス' のシステム停止サービス開始オプション
マニュアルページには、サービスのコマンドを定義:
サービススクリプトコマンド[オプション]
及びコマンドを渡す
サービスを米国および変更されていないinitスクリプトのオプション。
service foo someaction bar
は「バー」などを書き込みながら、デーモンリロード後、service foo start bar
は、出力ファイルには何も書き込まれていない、にsystemdを使用したシステムでは#!/bin/sh case "$1" in start) echo $2 >> output ;; someaction) echo $2 >> output ;; esac exit 0
:
は今「foo」という名前のいくつかのサービスのために、このinitスクリプトを取ります期待される。 (Ubuntu 16.04でテスト済み)
systemdのないシステムでは、両方のコマンドが "bar"を期待通りに書き出します。 (Mint 17.1でテスト済み)
私は同じことをやります。
startが呼び出されたときにオプションがドロップされ、他の「カスタム」コマンドが呼び出されないのはなぜですか?
まあの:
systemd
は、あなたがして行うことができるように、カスタムアクションを追加することができますが、簡単にカスタムunits
を作成することができますサポートしていません。しかし、serviceコマンドはsystemd-systemsの独自の仕様に従っていません。しかし、systemctlでargsを渡す方法はありますか? – Bastienあなたが正しいです - 'man service'文書には 'systemd'については何も言及されておらず、Ubuntu 16.04でも使われていない' upstart'だけです。いいえ、あなたは 'systemctl start'でargsを渡すことはできません。新しいユニットを作成し、それを起動するときに基本コマンドに異なるオプションを渡します。設計は、状況が異なる状況でどのように実行されるかの一貫性を高めることを奨励することです。 –
Ubuntu 16.04の 'service'の不正確な' man'ページに関するバグ報告を開くことを検討することができます。 –