Finding and Killing .NET Processes that you Disconnect from Instead of Stopping while Debugging on Linux
To see how to do this in Windows check this post.
When using Visual Studio Code to debug an application, I sometimes accidentally “Disconnect” the debug session instead of “Stopping” it. The same thing happens to me with Rider. When I “Disconnect”, the process continues running, and I won’t be able to start another debug session until I kill the one that is running.
Finding the process
Compared to Windows, in Linux, it is very easy to find the relevant process ID.
Let’s say the application is called “MyWebAPIApp”, all I need to do is run -
pgrep -afi mywebapiapp
Here are what the options do -
- -a list PID and full command line
- -f use full process name to match
- -i match case insensitively
I will get output like this -
17568 /home/bryan/dotnet/dotnet /home/bryan/dev/MyWebAPIApp/bin/Debug/net7.0/MyWebAPIApp.dll
Then kill that process -
Finding the process via the port
If you want to find the process that is using a known port number, you can use a few different methods. Let’s say the port is 5125.
Here are some of the ways, with their respective output -
# netstat $ netstat -lnpt | grep 5125 tcp 0 0 127.0.0.1:5125 0.0.0.0:* LISTEN 22435/dotnet tcp6 0 0 ::1:5125 :::* LISTEN 22435/dotnet # ss $ ss -lnpt | grep 5125 LISTEN 0 512 127.0.0.1:5125 0.0.0.0:* users:(("dotnet",pid=22435,fd=326)) LISTEN 0 512 [::1]:5125 [::]:* users:(("dotnet",pid=22435,fd=327)) # lsof $ lsof -i :5125 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dotnet 22435 bryan 326u IPv4 135254 0t0 TCP localhost:5125 (LISTEN) dotnet 22435 bryan 327u IPv6 135258 0t0 TCP ip6-localhost:5125 (LISTEN) # fuser $ fuser 5125/tcp 5125/tcp: 22435
- Finding and Killing .NET Processes that you Disconnect from Instead of Stopping while Debugging on Windows
- Removing Manually Installed .NET SDKs from Linux
- Installing Rider on Linux with .NET 7
- How To Run .NET 6, Kestrel, and Web API, on an AWS EC2 Linux Instance
- Sending MediatR Notifications Immediately After Saving an Entity with Entity Framework Core