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.