Você realmente, realmente não quer fazer isso. O Postgres não é um sistema operacional, é um servidor de banco de dados. Mesmo que o banco de dados suporte a execução de tarefas agendadas, não é uma boa ideia abusar do banco de dados dessa maneira.
Se sua preocupação é que você não deseja configurar a senha e os materiais, isso é fácil de resolver. Configure uma conexão de soquete Unix local usando a autenticação trust ou ident ; execute seu cronjob como esse usuário.
Em sua configuração pronta para uso, geralmente o postgres configura o usuário do sistema postgres
para executar o servidor db, e esse usuário do sistema já está pré-configurado para poder se conectar ao servidor local usando autenticação confiável ao se conectar via soquete unix local. Você pode executar seu cronjob como usuário do sistema postgres, conectar-se ao soquete local e, em seguida, alternar a função se não desejar que seu procedimento armazenado seja executado com privilégio de superusuário.
Na configuração padrão, você pode fazer isso:
$ sudo -u postgres crontab -e
No editor, adicione à entrada crontab da seguinte maneira:
0 0 * * * bash /path/to/run_stored_procedure.sh
e no seu arquivo /path/to/run_stored_procedure.sh, basta usar o psql para chamar o procedimento de armazenamento
#!/usr/bin/env bash
psql my_db_name <<END
SET ROLE limited_user;
SELECT my_stored_proc();
SELECT 1 FROM my_stored_proc();
END