Команда
pidof go.sh
разумеется ничего не выводит, так как pid будет не у вашего скрипта, а у шелла, его исполняющего - вы можете в этом убедиться, если воспользуетесь не
ps -a
, где вы видите имя вашего скрипта, а, например
ps aux | grep '[g]o.sh'
, где будет более подробная информация (добавил верхнюю строку для наглядности):
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
sfi0zy 3753 0.0 0.1 35140 3052 pts/2 S+ 09:35 0:00 /bin/bash ./go.sh
Как можно видеть, pid из второй колонки соответствует тому шеллу, который вы используете (в моем случае bash). Если вы посмотрите
pidof bash
, то заметите там этот же pid.