Вы уверены, что запускаете скрипт с правильной версией bash? Ваша линия Шебанга в порядке? Как насчет вызова скрипта с помощьюbash myscript.sh?
Чтобы выяснить, почему был запущен postgres, я бы проследил родительский процесс вверх. Поскольку вы обнаружили, что ваш PID заканчивается на PID 1, который в вашей системе является systemd, я попросил бы systemd сообщить мне о статусе своих модулей, а затем найти этот процесс. Вы можете найти имя процесса:
$ systemctl status | grep -B3 'postgres'
Если трех рядов недостаточно, чтобы раскрыть виновного юнита, увеличивайте его до тех пор, пока он этого не сделает.
Если у вас есть PID,
$ systemctl status 1024 ## example PID
, затем эта команда попросит systemd сообщить вам статус (и, следовательно, имя )устройства, которому принадлежит процесс.
Получив имя модуля systemd, вы можете предотвратить его запуск, запустив:
# systemctl mask --now unit-name-here
... опция --now
также немедленно останавливает агрегат.