MS에 제공된 단계를 사용하여 Centos8에 .NET Core(3.1) 애플리케이션을 설치하려고 합니다.입력하다.
Microsoft 설명서에 따른 서비스 파일/etc/systemd/system/kestrel-dotnetapp.service
[단위]
설명= centos용 .NET 웹 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.target
이렇게 하면 > 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