Você pode ver qual é o ID do processo pai (PPID) do processo em questão e usar o PPID para determinar se ele foi executado a partir de um shell ou de um programa diferente.
Por exemplo, se eu quisesse ver o que estava executando esse processo sleep , posso procurar por ele. PPID.
$ ps -ef | grep "sleep"
user 2470 1996 0 06:30 pts/1 00:00:00 sleep 60
PID 1996 é o PPID do processo sleep . Vamos grep para isso agora.
$ ps -ef | grep 1996
user 1996 1995 0 05:57 pts/1 00:00:00 bash
O PID 1996 é um shell bash , o que é uma boa indicação de que o sleep process poderia ser executado a partir de um terminal. Para levá-lo ainda mais longe, você pode grep para o PPID do processo bash .
$ ps -ef | grep 1995
user 1995 448 0 05:57 tty1 00:00:00 /usr/bin/urxvt
O PPID do processo bash é urxvt , um terminal virtual. Portanto, o comando sleep está sendo executado de um terminal.