Skip to content

[.NET8 + ARM64] Build no longer responds to SIGTERM and gets the Ubuntu service manager in trouble #94897

@DierkDroth

Description

@DierkDroth

Description

I'm building my ARM64 binary by either of both commands below (the reported issue exists on both builds):

dotnet publish -c Release -r linux-arm64 -p:PublishSingleFile=true -p:SelfContained=true -p:UseNativeAOTCompiler=true MyProject.csproj
dotnet publish -c Release -r linux-arm64 -p:PublishSingleFile=true -p:SelfContained=true -p:PublishReadyToRun=true MyProject.csproj

The .NET 7 binary responds well to the Ubuntu service manager command for stopping the server

service MyService stop

With .NET 8 this no longer works well: the Ubuntu service manager sends out SIGTERM, which is not respected by the .NET 8 binary but keeps the service running. This triggers a timeout logic on the Ubuntu service manager and makes it sending out SIGKILL to finally kill the service. Obviously not the preferred handling...

How could the .NET 7 signal handling be restored?

Reproduction Steps

Please see above

Expected behavior

.NET8 build should work as .NET 7 build

Actual behavior

.NET8 build does not work as .NET 7 build

Regression?

yes

Known Workarounds

none

Configuration

No response

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions