How to check a running process is loading or not in MAC OS X from a shell script?
I have a startup process for unloading, the command I used is
launchctl unload /System/Library/LaunchDaemons/costomscript.plist
it works fine if the process is already loaded. But if it is not loaded and I ran the command, it gives a message stating that no such process is loaded. So I need to have a check if the .plist file is currently being loaded, then it needs to be unloaded otherwise.
How can I achieve this .. please help. Thank you !!
source to share
You can get information about starting processes with
One possibility is to query
using a command
list [-x] [label]
With no arguments, list all jobs loaded into launchd in three columns. The first column displays the PID of the job, if it is running. The second column displays the last exit status of the job. If the number in this column is negative, it represents the negative signal that killed the job. Thus, "-15" indicates that work was terminated with SIGTERM. The third column is the job label.
If your plist is loaded it must be listed, otherwise it isn't. Also the first column contains
processes, so you can check if a process is running, for example:
$ launchctl list |grep myprocess 600 0 org.example.myprocess.1234
There is also a command
that gives detailed output about the process. Check if you can use it.
print domain-target | service target
Prints information about the specified service or domain. The domain output includes various domain properties, as well as a list of services and endpoints in the domain, with state specific to each. Issuing a service includes various properties of the service, including information about its origin on disk, its current state, execution context, and last exit status.
$ launchctl print gui/501/org.example.myprocess.1234 | grep state state = running
source to share