Você deve adicionar uma linha she-bang apropriada ( #! /bin/sh
ou #! /bin/bash
) ao seu script se quiser que ele apareça com o nome na lista de processos.
Exemplo:
$ cat foo
sleep 10
$ ./foo &
[4] 4403
$ ps -q 4403
PID TTY TIME CMD
4403 pts/3 00:00:00 bash
$ cat bar
#! /bin/sh
sleep 10
$ ./bar &
[5] 4406
$ ps -q 4406
PID TTY TIME CMD
4406 pts/3 00:00:00 bar
Caso contrário, no linux você ainda pode encontrar o nome do script no diretório /proc/PID/fd
:
$ ./foo &
[2] 5125
$ ls -l /proc/5125/fd
total 0
lrwx------ 1 ahq ahq 64 Oct 22 17:57 0 -> /dev/pts/3
lrwx------ 1 ahq ahq 64 Oct 22 17:57 1 -> /dev/pts/3
lrwx------ 1 ahq ahq 64 Oct 22 17:57 2 -> /dev/pts/3
lr-x------ 1 ahq ahq 64 Oct 22 17:57 254 -> /tmp/foo
lrwx------ 1 ahq ahq 64 Oct 22 17:57 255 -> /dev/pts/3
Aviso para a próxima linha, o 254
fd que aponta para o caminho do script sendo executado. Com outros shells do que bash
, serão outros fd
, como 3
ou 10
.
Isso também pode ser pesquisado inversamente com lsof /tmp/foo
.