systemdサービスを停止または再起動する前に、ロードされたApacheモジュールのリストをファイルとしてディスクに書きたいと思います。
だからapache2.serviceに追加しました。
ExecStop=/usr/sbin/apachectl -M > /home/ciasto/services/logs/apache2/loaded_mods
ただし、停止するとエラーが発生します。
$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: failed (Result: exit-code) since Tue 2020-08-25 16:20:37 United; 3min 8s ago
Process: 7269 ExecStop=/usr/sbin/apachectl -M > /home/ciasto/services/logs/apache2/loaded_mods (code=exited, status=1/FAILURE)
Main PID: 6245 (code=exited, status=0/SUCCESS)
Aug 25 16:20:36 rockpi apachectl[7269]: -M : a synonym for -t -D DUMP_MODULES
Aug 25 16:20:36 rockpi apachectl[7269]: -t -D DUMP_INCLUDES: show all included configuration files
Aug 25 16:20:36 rockpi apachectl[7269]: -t : run syntax check for config files
Aug 25 16:20:36 rockpi apachectl[7269]: -T : start without DocumentRoot(s) check
Aug 25 16:20:36 rockpi apachectl[7269]: -X : debug mode (only one worker, do not detach)
Aug 25 16:20:36 rockpi apachectl[7269]: Action '-M > /home/ciasto/services/logs/apache2/loaded_mods' failed.
Aug 25 16:20:36 rockpi apachectl[7269]: The Apache error log may have more information.
Aug 25 16:20:36 rockpi systemd[1]: apache2.service: Control process exited, code=exited status=1
Aug 25 16:20:37 rockpi systemd[1]: apache2.service: Failed with result 'exit-code'.
Aug 25 16:20:37 rockpi systemd[1]: Stopped The Apache HTTP Server.
答え1
使用エラーが発生したようです。 apachectl
あなたがそれを呼び出したかのように答えます:
/usr/sbin/apachectl '-M > /home/ciasto/services/logs/apache2/loaded_mods'
パラメータは次のとおりです-M
。>
/home/...
この行は、または同じ特定の演算子をExecStop=
サポートまたはサポートしません。これらの演算子を使用してシェルを直接呼び出し、コマンドを引数として渡すには、次のようにします。sh
sh
&
>
|
ExecStop=+/bin/sh -c '/usr/sbin/apachectl -M > /home/ciasto/services/logs/apache2/loaded_mods'
あなたの意見からわかるように、あなたのサービスは素晴らしかったですUser=www-data
。 www-data
トランザクションに実行権限がないか、sbin
トランザクションに書き込み権限がない可能性があります/home/ciasto/*
。したがって、他の行では続けますwww-data
。ExecStop=+/bin/sh
ExecStop=/bin/sh
小さなデモ:
User=www-data
ExecStop=/usr/bin/whoami
ExecStop=+/usr/bin/whoami
ジャーナルには次の内容が記録されます。
www-data
root