カスタム systemd サービスを開始しようとすると、このエラーが発生します。
netrender-slave.service:EXECフェーズで/usr/local/bin/netrender-slave.shを作成できませんでした。権限が拒否されました。
これは/etc/systemd/system/netrender-slave.service
[Unit]
Description=Blender netrender slave manager
[Service]
ExecStart=/usr/local/bin/netrender-slave.sh start
ExecStop=/usr/local/bin/netrender-slave.sh stop
ExecReload=/usr/local/bin/netrender-slave.sh reload
Type=simple
[Install]
WantedBy=multi-user.target
存在するこの問題、問題はスクリプトの権限ですが、netrender-slave.sh
大丈夫に見えます。
~# ls -al /usr/local/bin
total 16
drwxr-xr-x 2 root root 4096 Dec 4 11:30 .
drwxr-xr-x 10 root root 4096 Apr 20 2016 ..
-rwxr-xr-x 1 root root 816 Dec 4 11:30 netrender-slave.sh
存在するこの問題問題は、ディレクトリの1つに十分な権限がありませんが、すべての/usr/local/bin
ディレクトリが次のようになることです。
drwxr-xr-x 2 root root 4096 Dec 4 11:30 .
drwxr-xr-x 10 root root 4096 Apr 20 2016 ..
...
しかし、これは同じ質問に対するコメントで提供されます。
出力には
ls
UGO権限の後の.afterは表示されません。これはSELinuxセキュリティコンテキストを持つファイルを表すためにGNU lsによって使用される文字ですが、代替アクセス方法はありませんdrwxr-xr-x
。.
代替アクセス方法の他の組み合わせを含むファイルは文字で表示されます+
。
これが私の問題であるかどうかを確認する方法がわかりません。
答え1
これはsystemdの恐怖の家に似合う悪いアプローチです。唯一の問題は、スクリプトファイルにインタプリタがないことだと思うかもしれません。そうではありません。あなたが見ていない大きな問題は、rc
サービスユニット内で完全に不要な貧しい人々のサービス管理を含むvan Smoorenburgのスクリプトパッケージングです。これにより、誤ったプロセスがデーモンになり、正しく管理できなくなります。
しないでください。別の言葉。
-b
開発者は、そのオプションが混乱した文書であることを知らせる必要があります。
[単位] 説明=ブレンダーネットレンダースレーブマネージャー ドキュメント=https://unix.stackexchange.com/a/408848/5132 [提供する] タイプ=シンプル 作業ディレクトリ=/mnt/my-data ユーザー=ec2 - ユーザー 環境=FLAGS="simple_slave_eiptarget.blend --addons netrender -a -noaudio -nojoystick" ExecStart=/mnt/my-data/blender-2.73a-linux-glibc211-x86_64/blender -b $FLAGS --enable-autoexec [インストールする] WantedBy =マルチユーザー。ターゲット
追加読書
- ジョナサンデボインポラード(2015)。 システム化された恐怖の家。よく与えられる答えです。
- ジョナサン・ドボイン・ポラード(2001)。 Unixデーモンを設計する際に避けるべき間違い。よく与えられる答えです。
- ジョナサンデボインポラード(2015)。Unixデーモンの準備プロトコルの問題。一般的な答え。