I can easily start a background process, find its pid and search it in the list of running processes.
$gedit &
$PID=$!
$ps -e | grep $PID
This works for me. But if I start gnome-terminal as the background process
$gnome-terminal &
$PID=$!
$ps -e | grep $PID
Then, it is not found in the list of all running process.
Am I missing something here?
This appears to be because the gnome-terminal process you start starts a process itself and then exits. So the PID you capture is the pid of the “stub” process which starts up and then forks the real terminal. It does this so it can be completely detached from the calling terminal.
Unfortunately I do not know of any way of capturing the pid of the “granchild” gnome-terminal process which is the one left running. If you do a ps you will see the gnome-terminal “grandchild” process running with a parent pid of 1.