~% cat test.sh
#!/bin/bash
while true; do sleep 16; done
~% ./test.sh&
[1] 666
~% pidof -x test.sh
666
Пока всё хорошо. В фоне выполняется скрипт (вообще-то должен выполняться через setsid, но в контексте вопроса это не важно), а вызывая pidof -x можно посмотреть pid экземпляра шелла, его выполняющего.
~% cat test.sh
while true; do sleep 16; done
~% /bin/bash ./test.sh&
[1] 777
~% pidof -x test.sh
~% echo $?
1
А вот тут всё плохо. Если мы явно вызываем bash, передавая ему имя скрипта как аргумент, pidof его (скрипт) не видит.
Соответственно, вопрос: почему и отчего издохли попуг^W^Wтак происходит и как заставить pidof видеть скрипт, вызываемый вторым способом?