What does logman query providers -pid really do? - windows

Apparently, logman query providers -pid $pid allows us to see which providers the process $pid writes to.
But how does the process $pid open a handle to the providers? What's the API?

Related

Can a script determine its own process?

Say you have a single PowerShell script that can be started in multiple, simultaneous instances. Is there any way for those scripts to identify which process each of them is running?
Basically, I'm looking for something like an imaginary:
$MyInvocation.processID
Thanks.
Use the $PID automatic variable:
$ThisProcess = Get-Process -Id $PID

Kill list of processes

Hi Guys I need to kill all processes in a session but only from an user, not all.
Like user1, find all PIDs in them and print them like
120,451,487,455,... then exclude some I want for example I want 120 and 451 to not be killed but the rest yes.
I can do kill -9 PID this will kill the PID, but I am not sure how to kill all of them or find them from the user
With PowerShell you can do whatever you want.Please visit the following web page.
https://technet.microsoft.com/en-us/library/ee177004.aspx
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-process?view=powershell-5.1

How to see if a process is suspended in unix

I'm trying to resume all processes that are suspended ,but i have no idea how to check if a process is suspended. I tried but it dose not indicate if the process is suspended or running.
You might use Ipor's way (/proc/<pid>/status) if you are using Linux but a more portable solution that should work with most Unix/Unix likes OSes would be to use a standard command as Barmar already suggested in a comment:
ps -o s= -p <pid>
This will show T for a suspended process (also if stopped because being debugged).
Examining process with pid $pid is easy:
if grep -q "^State.*stopped" /proc/$pid/status; then
echo Process $pid is sleeping
else
echo Process $pid is active
fi

How to quickly kill java processes in bash?

On a linux box, I have at most 3 java jars files running. How do I quickly kill all 3 with one command?
Usually I would:
ps ex - get the processes running
then find the process ids then do:
kill -9 #### #### ####
Any way to shorten this process? My eyes hurts from squinting to find the process ids.
My script does the following:
nohup ./start-gossip &
nohup ./start &
nohup ./start-admin &
Is there a way to get the process ids of each without looking it up?
Short answer:
pkill java
This looks up a process (or processes) to kill by name. This will find any other java processes too, so be careful. It also accepts -9, but you should avoid using -9 unless something is really broken.
EDIT:
Based on updates, you may be able to specify the script names to pkill as well (I'm not positive). But, the more traditional way to handle this issue is to leave pid files around. After you start a new process and background it, its pid is available in $!. If you write that pid to a file, then it's easy to check if the process is still running and kill just the processes you mean to. There is some chance that the pid will be reused, however.
You can save the PIDs when you start the processes so you can use them later:
nohup ./start-gossip &
START_GOSSIP_PID=$!
nohup ./start &
START_PID=$!
nohup ./start-admin &
START_ADMIN_PID=$!
...
kill -9 $START_GOSSIP_PID
kill -9 $START_PID
kill -9 $START_ADMIN_PID
This has the advantage (over pkill) of not killing off any other processes that coincidentally have similar names. If you don't want to perform the kill operation from the script itself, but just want to have the PIDs handy, write them to a file (from the script):
echo $START_GOSSIP_PID > /some/path/start_gossip.pid
Or even just do this when you launch the process, rather than saving the PID to a variable:
nohup ./start-gossip &
echo $! > /some/path/start_gossip.pid
To get the process id of that java process run
netstat -tuplen
Process ID (PID) of that process whom you want to kill and run
kill -9 PID

bash & linux symbols, Jboss

I'm writing a script to start Jboss, load an application, send requests to the application, shutdown jboss and repeat. However I dont know how to shut Jboss down from the script. At the moment I'm using
pkill -9 java
But I dont think this is right, because it kills the process, not shut it down. Is there a way to shut it down similar to pressing CTRL-C?
You want a simple
pkill java
From the man page:
pkill will send the specified signal (by default SIGTERM) to each
process
SIGTERM will send a termination signal to the process. If the process is well-written, it will catch this signal and perform an orderly shutdown. If that fails, that's when you can use SIGKILL (-9) which is a forceable termination with no chance for the process to catch and perform cleanup.
Never use kill -9 <PID> by default. It breaks things up, like file descriptors and such.
Start to run kill <PID> alone, default is -15 signal.
See
man 7 signal
And In what order should I send signals to gracefully shutdown processes?
NOTE
kill or pkill doesn't change things so much, same signals are trigered
What you actually want is:
pkill -f jboss
using pkill java could kill any other processes using java on the box.

Resources