diff --git a/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs b/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs
index 8e2d9046af8987..1a0114cca21895 100644
--- a/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs
+++ b/src/libraries/Common/src/Interop/Unix/Interop.Libraries.cs
@@ -5,6 +5,8 @@ internal static partial class Interop
{
internal static partial class Libraries
{
+ internal const string Libc = "libc";
+
// Shims
internal const string SystemNative = "libSystem.Native";
internal const string NetSecurityNative = "libSystem.Net.Security.Native";
diff --git a/src/libraries/Common/src/Interop/Unix/libc/Interop.GetParentPid.cs b/src/libraries/Common/src/Interop/Unix/libc/Interop.GetParentPid.cs
new file mode 100644
index 00000000000000..95b27abf158287
--- /dev/null
+++ b/src/libraries/Common/src/Interop/Unix/libc/Interop.GetParentPid.cs
@@ -0,0 +1,13 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System.Runtime.InteropServices;
+
+internal static partial class Interop
+{
+ internal static partial class libc
+ {
+ [GeneratedDllImport(Libraries.Libc, EntryPoint = "getppid")]
+ internal static partial int GetParentPid();
+ }
+}
diff --git a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj
index 5d375e67feab7c..b9faefd40f2f07 100644
--- a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj
+++ b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/Microsoft.Extensions.Hosting.Systemd.csproj
@@ -18,6 +18,11 @@
+
+
+
+
+
diff --git a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/SystemdHelpers.cs b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/SystemdHelpers.cs
index 244e41c69e179d..b582580c9e97fe 100644
--- a/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/SystemdHelpers.cs
+++ b/src/libraries/Microsoft.Extensions.Hosting.Systemd/src/SystemdHelpers.cs
@@ -4,7 +4,6 @@
using System;
using System.Globalization;
using System.IO;
-using System.Runtime.InteropServices;
using System.Text;
namespace Microsoft.Extensions.Hosting.Systemd
@@ -34,7 +33,7 @@ private static bool CheckParentIsSystemd()
try
{
// Check whether our direct parent is 'systemd'.
- int parentPid = GetParentPid();
+ int parentPid = Interop.libc.GetParentPid();
string ppidString = parentPid.ToString(NumberFormatInfo.InvariantInfo);
byte[] comm = File.ReadAllBytes("/proc/" + ppidString + "/comm");
return comm.AsSpan().SequenceEqual(Encoding.ASCII.GetBytes("systemd\n"));
@@ -45,8 +44,5 @@ private static bool CheckParentIsSystemd()
return false;
}
-
- [GeneratedDllImport("libc", EntryPoint = "getppid")]
- private static partial int GetParentPid();
}
}