Вы можете попробовать отправить psql
в фоновом режиме:
psql -f your_sql_file.sql &
Или, подключившись к локальной БД, вы можете использовать dblink
для отправки запроса на удаленную БД:
SELECT dblink_connect('your_connection_name', 'your_connection_string');
SELECT dblink_send_query('your_connection_name', 'your_query');
Обратите внимание, что одновременно dblink_send_query
можно отправлять только один запрос. Итак, если вы хотите запустить несколько операторов SQL, это не ваше решение.
Или вы можете запустить pg_agent
задание на удаленном сервере, которое не требует ручного вмешательства, поэтому состояние вашего домашнего ящика не влияет на выполнение задания. То же самое может быть достигнуто путем создания cron
(или даже лучше, at
- спасибо, Эрвин) задания по выполнению вашего сценария.
Кроме того, если у вас есть длительное задание, которое вы запускаете вручную, вы можете запустить screen
сеанс на сервере и запустить файл оттуда. В этом случае вы можете выйти из системы и вернуться домой, и скрипт продолжит работу.
tmux
так: «Смогу ли я завершить работу своего локального компьютера, и запрос все еще обрабатывается на удаленном сервере»?