Systemdサービスファイルを作成しました(具体的にはsvnserve用です。実際にはここからサンプルを使用しています https://stackoverflow.com/a/40584047/464087 )。有効にすると、タイピング
Sudo systemctl enable svnserve
応答があります
Failed to execute operation: Invalid argument
ランニング
Sudo systemctl status svnserve
利回り
● svnserve.service - Subversion protocol daemon
Loaded: loaded (/etc/systemd/system/svnserve.service; enabled; vendor preset: enabled)
Active: inactive (dead)
何かが間違っているという手がかりを与えてくれません。その後、エラーなしでサービスを開始できますが、期待どおりに実行されているようで、systemctlステータスを開始した後、まだ何も間違っているという手がかりが得られません。
● svnserve.service - Subversion protocol daemon
Loaded: loaded (/etc/systemd/system/svnserve.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-01-09 22:10:14 UTC; 6s ago
Process: 9677 ExecStart=/usr/bin/svnserve $DAEMON_ARGS (code=exited, status=0/SUCCESS)
Main PID: 9678 (svnserve)
Tasks: 1
Memory: 964.0K
CPU: 2ms
CGroup: /system.slice/svnserve.service
└─9678 /usr/bin/svnserve --daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log
それでは、このエラーメッセージはどういう意味ですか?そして、どのレベルの事柄に「無効な引数」が適用されるはずですか? svnserveコマンドへの引数?サービスファイルの一部のプロパティ? servicectlコマンド自体へのコマンドライン引数?
FWIWこれはUbuntu 16.04 LTSサーバー上にあります。
同様のケースがありました。私の場合、[Install]セクションからAlias行を削除すると問題はなくなりました。別のスレッドのアントンのおかげで: https://stackoverflow.com/a/34978908/2711456 -エイリアス名はサービス名と同じではない場合があります。
私が見つけたのは、コメント付きのバグです(少なくともsystemd 219で)。サービスファイルのコードの後にコメントがある場合、それを有効にできませんでした。新しい文字列にコメントを追加するか、削除してください。私はテストし、それは私のために働いています:
WantedBy=multi-user.target
# runs in init 3 (multi-user mode for linux)
これは機能しません:
WantedBy=multi-user.target # runs in init 3 (multi-user mode for linux)
いくつかの議論はここにあります: https://github.com/rabbitmq/rabbitmq-server/issues/1422
私はまったく同じことを経験しました。 「エイリアス」を削除しても機能しますが、実際には、サービスファイルと同じ名前をエイリアスに付けることができます。
動作しない理由は、サービスファイルが置かれているディレクトリに関連しています。
Systemdが有効にするのは、ディレクトリ "/ etc/systemd/system"およびこのサービスが必要なターゲットディレクトリにエイリアスを作成することです。元のサービスファイルが既に「/ etc/systemd/system」にある場合、systemdがこのサービスを有効にしようとすると、エイリアスを作成できません。
解決策は、サービスファイルをディレクトリ「/ lib/systemd/system /」に配置することです。
あなたがこれを試して、私はそれを解決しました:
cd /etc/systemd/system/multi-user.target.wants
ls
ネームサービスエラーの検索「操作の実行に失敗しました:引数が無効です」
rm -rf yourname.service
cd/etc/systemd/system /
nano yourname.service
コンテンツサービスを編集します(コンテンツの間違いかもしれません(symboy [、]、... bla..blaを確認)
==>保存する
systemctl daemon-reload
systemctl enable yourname.service
がんばろう!!!
/etc/systemd/system/youunit.service
ファイルの最後の行の後に、CR
記号が必要です。それを確認し、/etc/systemd/system/multi-user.target.wants/youunit.service
を削除します。次に、systemctl enable youunit
を再試行します。
だから、私たちはすでに同様の答えを持っていると思います。理由を示したいだけです。
回答:
cd /etc/systemd/system/multi-user.target.wants/ # it can be other WantedBy item
ls -lA # notice that <your>.service is not a link
rm <your>.service # remove it
そして今試してください:
Sudo systemctl enable <your>.service
正しいリンクを作成し、サービスを有効にする必要があります。