Сценарии оболочки не запускаются в качестве имени сценария.Они запускаются как имя оболочки, которую вы указываете в шебанге.В вашем случае это /bin/bash
.Если бы вы сделали pidof bash
, вы бы получили pid своего скрипта (вместе со всеми другими скриптами bash, запущенными в то время).
При этом вы не можете убить скрипты ихимя, как вы пытаетесь с kill %loop
.Kill принимает только пиды.Если вы используете нотацию %
, то это относится к внутреннему номеру задания, назначенному оболочкой.Например, используя ваш скрипт цикла в качестве примера:
$ ./loop & <-- first run of loop script
[1] 8077 <--- job #1, running as pid 8077
$ ./loop & <--- second run of loop script
[2] 8079 <-- job #2, running as pid 8079
$ jobs
[1]- Running ./loop &
[2]+ Running ./loop &
$ kill %2
$ jobs
[1]- Running ./loop &
[2]+ Terminated ./loop <-- note, showing 'terminated' now
$ kill -9 8077
$ jobs
[1]+ Killed ./loop
$ jobs
$