MSに提供されている手順を使用してCentos8に.NET Core(3.1)アプリケーションをインストールしようとしています。入力する。
Microsoft のドキュメントに従ったサービスファイル/etc/systemd/system/kestrel-dotnetapp.service
[単位]
説明= centos用.NET Web APIアプリ
[Service]
WorkingDirectory=/var/Application/netcoreapp31
ExecStart=/usr/local/dotnet /var/Application/netcoreapp31/helloapp.dll
Restart=always # 10秒後に再起動サービス dotnet サービスがクラッシュする場合:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnetapp
User=user
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[インストール]
WantedBy=multi-user.
これを行うと、>sudo systemctl restart kestrel-dotnetapp.service
エラーが発生します。
6月4日 22:51:28 ホスト名 systemd[1827]: kestrel-dotnetapp.service: コマンドを実行できません: 権限が拒否されました。
6月4日 22:51:28 ホスト名 systemd[1827]: kestrel-dotnetapp.service: EXEC フェーズで失敗しました。 build /usr/local/dotnet:権限が拒否されました
- 件名:プロセス/usr/local/dotnetを実行できません
- 定義者:systemd
下から探すls-la:
[user@hostname dotnet]$ ls -la
total 108
drwxr-xr-x. 4 root root 94 Apr 22 09:34 .
drwxr-xr-x. 14 root root 154 Jun 4 21:11 ..
-rwxr-xr-x. 1 root root 73048 Apr 22 09:32 dotnet
drwxr-xr-x. 3 root root 17 Apr 22 09:34 host
-rw-r--r--. 1 root root 1116 Apr 22 09:29 LICENSE.txt
drwxr-xr-x. 4 root root 67 Apr 22 09:34 shared
-rw-r--r--. 1 root root 31330 Apr 22 09:29 ThirdPartyNotices.txt
マイアプリケーション結果フォルダ
[user@hostname Application]$ ls -la
total 8
drwxr-xr-x. 3 root root 26 Jun 4 20:53 .
drwxr-xr-x. 22 root root 4096 Jun 4 20:53 ..
drwxr-xr-x. 2 777 user 4096 Jun 4 20:45 netcoreapp31
答え1
Redhat OS usr/bin/dotnet 権限の拒否に対する次の回避策を探します。
ExecStart=/usr/bin/dotnet/dotnet
- サービスファイルの承認(例:
chmod 755 your filename.service
- 権限を付与したら、次のコマンドを実行します。
sudo systemctl enable Your filename.service sudo systemctl start Your filename.service sudo systemctl status Your filename.service
ファイル名の例:abc.service