You could have a look at its PPID (parent process ID) :
$ ps -eo pid,ppid,args | grep java
Once you've got the PPID (second column) of your Java process, use ps
again to find the associated process:
$ ps -p [PPID]
Edit : if the parent is 1 (init), then the first parent of your Java process died right after "giving birth" (how sad). Because of that, you can't use the current process hierarchy to find it. The first thing I would recommend you to do is to check ps -ef
. You might find the culprit just by reading the output.
Then, have a look at crontabs (you did it already, but it won't hurt) :
$ for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
This will require root privileges.
Still can't see a Java process scheduled? Dang it. Let's try something else. If your Java process is present since boot, have a look at programs scheluded at boot time. I would suggest something like...
$ grep -iR java /etc/rc*
If you still can't find anything then... Well I admit I'm running out of ideas. You should really have another look at ps -ef
, and locate processes associated with Java-based programs. You should come across a daemon, or a "launcher", responsible for the constant respawning of your Java process.
ps xf
showing the process tree? As it stands, we have very little to go on. – terdon Oct 22 '14 at 18:55at
to see if any of those is the one?. – YoMismo Oct 23 '14 at 06:56