![시작 스크립트를 사용하여 "dotnet run"을 실행할 때 "처리되지 않은 예외: System.ArgumentNullException: 값은 null일 수 없습니다." 오류](https://linux55.com/image/99580/%EC%8B%9C%EC%9E%91%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%22dotnet%20run%22%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20%22%EC%B2%98%EB%A6%AC%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EC%98%88%EC%99%B8%3A%20System.ArgumentNullException%3A%20%EA%B0%92%EC%9D%80%20null%EC%9D%BC%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%22%20%EC%98%A4%EB%A5%98.png)
dotnet run --configuration Release
시스템 서버 시작/다시 시작 시 dotnet 애플리케이션을 실행 하려고 합니다 . init.d
동일한 목적을 달성하기 위해 스크립트를 사용하고 있습니다 .
내 시작 스크립트는 다음 위치에 있으며 /etc/init.d/myscript
다음을 포함합니다.
#!/bin/sh
/home/user/myscripts/botScript.sh
콘텐츠 botScript.sh
:
#!/bin/bash
cd /home/user/bot/
nohup dotnet run --configuration Release &
서버가 시작되거나 다시 시작되면 시작 스크립트가 실행되지만 dotnet run
작동하지 않습니다. 다음 오류가 발생합니다.
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: path1
at System.IO.Path.Combine(String path1, String path2, String path3)
at Microsoft.DotNet.ProjectModel.Resolution.PackageDependencyProvider.ResolvePackagesPath(String rootDirectory, GlobalSettings settings)
at Microsoft.DotNet.Configurer.NuGetCacheSentinel.get_NuGetCachePath()
at Microsoft.DotNet.Configurer.NuGetCacheSentinel.Exists()
at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.ShouldPrimeNugetCache()
at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure()
at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(INuGetCacheSentinel nugetCacheSentinel)
at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
at Microsoft.DotNet.Cli.Program.Main(String[] args)
하지만 다른 모든 명령은 이 스크립트에서 잘 작동하며 단순히 실행해도 dotnet
잘 작동합니다(확인했습니다). 그건 dotnet run
작동하지 않습니다.
예, 하지만 스크립트를 실행하고 서버에 myscript
로그인 하면 botScript.sh
오류 없이 잘 작동합니다.
누구든지 이 문제를 해결하도록 도와주실 수 있나요?