Перейти к основному содержимому

Практикум. Ручная установка Pangolin

Подготовка к установке

  1. Проверьте наличие системного пользователя postgres. Если такого пользователя нет, создайте его, установив оболочку /bin/bash и домашний каталог /var/lib/postgres. Пользователь (в данном случае student) должен иметь возможность выполнять команды от имени других пользователей с помощью sudo (в зависимости от используемой операционной системы, пользователю обычно достаточно быть членом группы wheel или sudo):

    $ id
    uid=1000(student) gid=1000(student) группы=1000(student),10(wheel)
    $ id postgres
    id: «postgres»: такого пользователя нет
    $ sudo useradd -m -r -d /var/lib/postgres -s /bin/bash postgres
    $ id postgres
    uid=978(postgres) gid=977(postgres) группы=977(postgres)

    В зависимости от настроек команда sudo, возможно, потребует ввода пароля учетной записи, от имени которой запускается sudo (в данном случае - student). Для этой учетной записи должна быть соответствующая настройка для разрешения выполнять sudo.

  2. Убедитесь в наличии домашнего каталога пользователя postgres, а также в том, что его пароль в ОС заблокирован, а оболочка - /bin/bash. Проверьте права на домашний каталог postgres - они должны быть 700:

    $ ls -ld ~postgres/
    drwx------. 4 postgres postgres 4096 авг 22 07:57 /var/lib/postgres/
    $ grep postgres /etc/passwd postgres:x:978:977::/var/lib/postgres:/bin/bash
    $ sudo passwd -S postgres
    postgres LK 2024-08-22 -1 -1 -1 -1 (Пароль заблокирован.)

    Так как пароль у пользователя postgres заблокирован, непосредственный вход в сеанс от имени этой учетной записи невозможен. Также невозможно использовать команду su - postgres, так как она требует ввода пароля учетной записи postgres, а она заблокирована.

  3. Проверьте возможность запуска сеанса от имени заблокированной учетной записи postgres, используя команду sudo -i -u postgres:

    $ sudo -i -u postgres
    $ pwd /var/lib/postgres
    $ id
    uid=978(postgres) gid=977(postgres) группы=977(postgres)
    $ whoami postgres
    $ who am i student pts/1
    $ exit выход

    Можно, хотя и излишне, использовать sudo su - postgres. Обратите внимание на разницу между командами whoami и who am i. Первая из них выдает имя пользователя в текущей сессии (в данном случае - оболочка bash, запущенная с помощью sudo), как и команда id. Команда who am i выдает имя пользователя, вошедшего в сеанс ОС исходно до выполнения команд su или sudo. Для выхода из сеанса - exit, logout или Ctrl+D.

  4. Проверьте наличие архива с установочным пакетом ПО Pangolin и получите его содержимое. Пакет должен быть в подкаталоге Dist домашнего каталога пользователя student. Для удобства распаковка будет производиться в подкаталоге Distrib домашнего каталога:

    $ ls -1 ~/Dist/
    license_edu_202501.json PSQ-06.002.00-69-redos7.3.2-distrib.zip PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
    $ mkdir ~/Distrib && cd ~/Distrib /home/student/Distrib
    $ unzip -l ~/Dist/PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
    Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-gst-distrib.zip
    Length Date Time Name
    --------- ---------- ----- ----
    64 04-28-2024 16:53 PSQ-06.002.00-69-redos7.3.2-distrib.zip.gst
    1495 04-28-2024 16:53 PSQ-06.002.00-69-redos7.3.2-distrib.zip.gst.p7s
    --------- -------
    1559 2 files
    $ unzip -l ~/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
    Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
    Length Date Time Name
    --------- ---------- ----- ----
    490 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-documentation-
    distrib.pom
    243560569 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-documentation-
    distrib.zip
    486 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-installer-distrib.pom
    3667157 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-installer-distrib.zip
    482 04-28-2024 16:49 PSQ-06.002.00-69-redos7.3.2-owned-distrib.pom
    51369991 04-28-2024 16:48 PSQ-06.002.00-69-redos7.3.2-owned-distrib.zip
    482 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-party-distrib.pom
    549620708 04-28-2024 16:49 PSQ-06.002.00-69-redos7.3.2-party-distrib.zip
    1209 04-28-2024 16:50 PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
    --------- -------
    848221574 9 files
  5. Создайте каталог ~/Distrib и, перейдя в него, распакуйте архив ПО Pangolin:

    $ cd ~/Distrib/
    $ unzip ~/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
    Archive: /home/student/Dist/PSQ-06.002.00-69-redos7.3.2-distrib.zip
    inflating: PSQ-06.002.00-69-redos7.3.2-documentation-distrib.pom
    inflating: PSQ-06.002.00-69-redos7.3.2-documentation-distrib.zip
    inflating: PSQ-06.002.00-69-redos7.3.2-installer-distrib.pom
    inflating: PSQ-06.002.00-69-redos7.3.2-installer-distrib.zip
    inflating: PSQ-06.002.00-69-redos7.3.2-owned-distrib.pom
    inflating: PSQ-06.002.00-69-redos7.3.2-owned-distrib.zip
    inflating: PSQ-06.002.00-69-redos7.3.2-party-distrib.pom
    inflating: PSQ-06.002.00-69-redos7.3.2-party-distrib.zip
    inflating: PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh

    В каталоге Distrib теперь находятся извлеченные из архива zip файлы, содержащие ПО для установки. Распаковка может быть автоматизирована с помощью скрипта с суффиксом - unpacker-distrib.sh.

  6. Проверьте права на скрипт установки и запустите его:

    $ ls -l PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh
    -rw-r--r-- 1 student student 1209 апр 28 16:50 PSQ-06.002.00-69-redos7.3.2- unpacker-distrib.sh
    $ file PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh: Bourne-Again shell script, UTF- 8 Unicode text executable
    $ bash PSQ-06.002.00-69-redos7.3.2-unpacker-distrib.sh start
    ~/Distrib/distributive ~/Distrib
    successful completion: PSQ-06.002.00-distrib.tar.gz ~/Distrib
  7. В результате выполнения предыдущего скрипта в текущем каталоге должен появиться собранный tar архив с установочным ПО Pangolin:

    $ ls -ltrh
    total 1.6G
    -rw-r--r-- 1 student student 233M Apr 28 16:48 PSQ-06.002.00-69-redos7.3.2- documentation-distrib.zip
    -rw-r--r-- 1 student student 3.5M Apr 28 16:48 PSQ-06.002.00-69-redos7.3.2- installer-distrib.zip
    -rw-r--r-- 1 student student 49M Apr 28 16:48 PSQ-06.002.00-69-redos7.3.2- owned-distrib.zip
    -rw-r--r-- 1 student student 482 Apr 28 16:49 PSQ-06.002.00-69-redos7.3.2- owned-distrib.pom
    -rw-r--r-- 1 student student 525M Apr 28 16:49 PSQ-06.002.00-69-redos7.3.2- party-distrib.zip
    -rw-r--r-- 1 student student 482 Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- party-distrib.pom
    -rw-r--r-- 1 student student 486 Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- installer-distrib.pom
    -rw-r--r-- 1 student student 490 Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- documentation-distrib.pom
    -rw-r--r-- 1 student student 1.2K Apr 28 16:50 PSQ-06.002.00-69-redos7.3.2- unpacker-distrib.sh
    -rw-rw-r-- 1 student student 803M Aug 22 10:07 PSQ-06.002.00-distrib.tar.gz

    Опция -t команды ls выводит сортированный по времени модификации список файлов, а опция -r обеспечивает вывод этого списка в обратном порядке. Поэтому файлы, модифицированные недавно будут в конце списка.

  8. Используя архиватор tar получите список содержимого архива установочного ПО:

    $ tar xvf PSQ-06.002.00-distrib.tar.gz
    ...
    utilities/psql_get_password_hash utilities/pg_certs_rotate/ utilities/pg_certs_rotate/pg_certs_rotate_agent

    В команде использован BSD стиль опций без минуса, однако POSIX стиль перед этими опциями допустим. Так как tar архив сжат gzip, то можно было также указать опцию z, однако tar подставил ее автоматически. Опция v не обязательна и обеспечивает режим подробного информирования. После опции f указывают имя файла архива.

  9. Проверьте, извлечены ли из tar архива пакеты RPM, содержащие ПО Pangolin:

    $ ls -1 *.rpm pangolin-backup-tools-1.2.0-redos7.3.2.x86_64.rpm pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm pangolin-dbms-6.2-libpq-6.2.0-redos7.3.2.x86_64.rpm
    pangolin-dbms-6.2-libpq-dev-6.2.0-redos7.3.2.x86_64.rpm
    pangolin-manager-2.1.0-redos7.3.2.x86_64.rpm
    pangolin-pooler-1.3.0-redos7.3.2.x86_64.rpm

Установка

  1. Получите информацию о пакете с серверным ПО СУБД Pangolin, а также о пакете с клиентским ПО. Используйте rpm с опциями: -q — режим запроса, -i — получение информации о пакете и -p — обращение к пакету, еще не установленному в системе:

    $ rpm -qip pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm
    Name
    Version
    Release
    Architecture: x86_64
    Install Date: (not installed)
    : pangolin-dbms-6.2
    : 6.2.0
    : redos7.3.2
    Group
    Size
    License
    Signature
    Source RPM : pangolin-dbms-6.2-6.2.0-redos7.3.2.src.rpm
    Build Date : Sat 27 Apr 2024 02:01:52 PM MSK
    : Applications/Databases
    : 70739207
    : PostgreSQL
    : (none)
    Build Host : localhost
    Relocations : /usr/pangolin-6.2.0
    URL : https://sbertech.ru
    Summary : Pangolin Database Management System
    Description :
    Platform V Pangolin is an advanced Object-Relational database management system
    (DBMS).
    , which will in turn allow you to create
    and maintain Pangolin databases.
    $ rpm -qip pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm
    The pangolin-dbms package contains the programs needed to create
    and run a Pangolin server
    Name
    Version
    Release
    Architecture: x86_64
    Install Date: (not installed)
    : pangolin-dbms-6.2-client
    : 6.2.0
    : redos7.3.2
    Group
    Size
    License
    Signature
    Source RPM : pangolin-dbms-6.2-6.2.0-redos7.3.2.src.rpm
    Build Date : Sat 27 Apr 2024 02:01:52 PM MSK
    : Applications/Databases
    : 12268029
    : PostgreSQL
    : (none)
    Build Host : localhost
    Relocations : /usr/pangolin-dbms-client-6.2.0
    URL : https://sbertech.ru
    Summary : Pangolin DBMS client programs
    Description :
    Platform V Pangolin is an advanced Object-Relational database management system
    (DBMS).
    The pangolin-dbms-client package contains the client programs that you will need
    to
    access a Pangolin DBMS server. These client programs can be located on the same
    machine as the
    Pangolin server, or on a remote machine that accesses a Pangolin server
    over a network connection. The Pangolin server can be found in the
    platform-v-pangolin-server sub-package.
  2. Получите из еще не установленного пакета с ПО сервера СУБД Pangolin, куда будет установлен файл с исполняемым кодом postgres после установки пакета. Используйте команду rpm с опциями -qlp, -l - список файлов, установленных из пакета. Также найдите, в какое место файловой системы будет установлена утилита psql из пакета с клиентским ПО:

    $ rpm -qlp pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm | fgrep bin/postgres /usr/pangolin-6.2.0/bin/postgres
    $ rpm -qlp pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm | fgrep bin/psql /usr/pangolin-dbms-client-6.2.0/bin/psql
  3. Установите ПО сервера и клиента. Используйте dnf install с опцией -y - автоматически отвечает yes на все вопросы. Также можно использовать yum localinstall или rpm -i, однако в последнем случае зависимости пакетов не будут установлены автоматически. Затем проверьте, установились ли пакеты с помощью rpm -qa:

    $ sudo dnf -y install pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64.rpm
    Last metadata expiration check: 1:27:00 ago on Thu 22 Aug 2024 01:33:38 PM MSK. Dependencies resolved.
    ...
    Verifying
    Verifying
    Verifying
    Verifying
    Verifying
    Verifying
    : perl-DBI-1.642-2.el7.x86_64
    : uuid-1.6.2-1.el7.x86_64
    : jsoncpp-1.9.4-3.el7.x86_64
    : libpq-15.0-1.el7.x86_64
    : perl-DBD-Pg-3.17.0-1.el7.x86_64
    : pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64
    Installed:
    jsoncpp-1.9.4-3.el7.x86_64 libpq-15.0-1.el7.x86_64 pangolin-dbms-6.2-
    6.2.0-redos7.3.2.x86_64 perl-DBD-Pg-3.17.0-1.el7.x86_64 perl-DBI-1.642-
    2.el7.x86_64 uuid-1.6.2-1.el7.x86_64
    Complete!
    $ sudo dnf -y install pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64.rpm
    Last metadata expiration check: 1:29:52 ago on Thu 22 Aug 2024 01:33:38 PM MSK. Dependencies resolved.
    ...
    Verifying : pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64
    Installed:
    pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64
    Complete!
    $ rpm -qa pangolin\*
    pangolin-dbms-6.2-6.2.0-redos7.3.2.x86_64
    pangolin-dbms-6.2-client-6.2.0-redos7.3.2.x86_64

    С опциями -qa команда rpm выводит список имен всех установленных пакетов в системе, однако если использовать файловый шаблон (globbing), можно отфильтровать нужные имена пакетов.

  4. Подключите библиотеки, установленные в каталог /usr/pangolin/lib из пакета серверного ПО и каталог /usr/pangolin-dbms-client/lib - клиентского. Для этого создайте файл конфигурации для ldconfig. Проиндексируйте базу данных библиотек и проверьте, подключаются ли библиотеки к ПО сервера и клиентов:

    $ echo '/usr/pangolin/lib' | sudo tee /etc/ld.so.conf.d/pangolin.conf /usr/pangolin/lib
    $ echo '/usr/pangolin-dbms-client/lib' | sudo tee -a /etc/ld.so.conf.d/pangolin.conf /usr/pangolin-dbms-client/lib
    $ cat /etc/ld.so.conf.d/pangolin.conf /usr/pangolin/lib /usr/pangolin-dbms-client/lib

    В каталоге /etc/ld.so.conf.d можно размещать конфигурационные файлы с путями к каталогам, содержащим динамические библиотеки (shared objects). Другой путь - прописать пути к библиотекам непосредственно в файл конфигурации /etc/ld.so.conf. Собственно база динамических библиотек - /etc/ld.so.cache:

    $ sudo ldconfig

    Утилита ldconfig индексирует базу данных динамических библиотек. Утилита ldd позволяет проверить список динамических библиотек, которые требуются для запуска динамически скомпонованных исполняемых файлов в формате ELF:

    $ ldd /usr/pangolin-dbms-client/bin/psql | grep libpq
    libpq.so.5 => /usr/pangolin-dbms-client/bin/../lib/libpq.so.5
    (0x00007f505c307000)
    $ ls -l /usr/pangolin-dbms-client/bin/../lib/libpq.so.5 lrwxrwxrwx 1 root root 13 апр 27 14:01 /usr/pangolin-dbms-client/bin/../lib/libpq.so.5 -> libpq.so.5.15

    Другой возможный путь указать местоположение в файловой системе каталогов, содержащих динамические библиотеки - использование переменной окружения LD_LIBRARY_PATH.

Подготовка к запуску

Внимание!

Перейдите в домашний каталог командой cd.

  1. Создайте каталог для кластера баз данных (PGDATA), каталог для журналов отчета, а также каталог для размещения лицензии. Имена соответствуют рекомендуемым в документации. Установите на созданные каталоги владельца и группу postgres:

    $ cd
    $ sudo mkdir -p /pgdata/06/data /pgerrorlogs/06 /opt/pangolin_license
    $ sudo ls -ld /pgdata/06/data /pgerrorlogs/06 /opt/pangolin_license drwxr-xr-x 2 root root 4096 Aug 22 16:37 /opt/pangolin_license drwxr-xr-x 2 root root 4096 Aug 22 16:37 /pgdata/06/data
    drwxr-xr-x 2 root root 4096 Aug 22 16:37 /pgerrorlogs/06
    $ sudo chown -R postgres:postgres /pgdata/06 /pgerrorlogs/06 /opt/pangolin_license
    $ sudo ls -ld /pgdata/06/data /pgerrorlogs/06 /opt/pangolin_license drwxr-xr-x 2 postgres postgres 4096 Aug 22 16:37 /opt/pangolin_license drwxr-xr-x 2 postgres postgres 4096 Aug 22 16:37 /pgdata/06/data drwxr-xr-x 2 postgres postgres 4096 Aug 22 16:37 /pgerrorlogs/06
  2. Запишите в файлы профиля пользователей student и postgres настройки нескольких переменных окружения:

    # Pangolin
    umask 022
    export LD_LIBRARY_PATH=/usr/pangolin/lib
    export PG_PLUGINS_PATH=/usr/pangolin/lib/plugins
    export PGHOME=/usr/pangolin
    export PGCLIENTENCODING=UTF8
    export CLNAME=clustername
    export PGDATA=/pgdata/06/data
    export PG_LICENSE_PATH=/opt/pangolin_license/
    export LANG=en_US.UTF-8
    export LC_ALL="en_US.UTF-8"
    EOF
    $ sudo tee -a ~postgres/.bash_profile << EOF > /dev/null
    EOF

    В команде используется ввод в стандартный поток stdin строк посредством here document - механизма оболочки. Ограничитель ввода - EOF может быть любой последовательностью символов, единственной в строке. Опция -a команды tee переключает эту команду, записывающую полученные из stdin данные в файлы - аргументы, в режим добавления без переписывания предыдущего содержимого этих файлов.

  3. Скопируйте лицензию в соответствующий каталог и установите на него права для postgres. В этом примере предполагается, что файл лицензии находится в каталоге ~/Dist. Если он находится в ином каталоге, измените соответствующим образом первый аргумент команды cp. Проверить местоположение файла лицензии поможет команда ls:

    $ sudo cp ~/Dist/license*.json /opt/pangolin_license/license.json '/home/student/Dist/license_edu_202501.json' -> '/opt/pangolin_license/license.json'
    $ sudo chown -v postgres:postgres /opt/pangolin_license/license.json changed ownership of '/opt/pangolin_license/license.json' from root:root to postgres:postgres
  4. В сеансе пользователя ОС postgres проверьте работоспособность клиента и сервера, запросив информацию о версии:

    $ sudo -iu postgres
    $ psql --version
    psql (PostgreSQL) 15.5
    $ postgres --product_version Platform V Pangolin 6.2.0
    $ postgres --version postgres (PostgreSQL) 15.5

Создание и запуск кластера баз данных

  1. Убедитесь, что локаль установлена в en_US.UTF8. От имени postgres проверьте наличие и пустоту каталога PGDATA:

    $ locale
    LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8
    $ ls -ld $PGDATA
    drwx------ 2 postgres postgres 4096 Aug 22 20:50 /pgdata/06/data
    $ ls -la $PGDATA
    total 8
    drwx------ 2 postgres postgres 4096 Aug 22 20:50 . drwxr-xr-x 3 postgres postgres 4096 Aug 22 16:37 ..
    $ initdb -k
    The files belonging to this database system will be owned by user "postgres". This user must also own the server process.
    The database cluster will be initialized with locale "en_US.UTF8".
    The default database encoding has accordingly been set to "UTF8".
    The default text search configuration will be set to "english".
    Data page checksums are enabled.
    ...
    initdb: warning: enabling "trust" authentication for local connections
    initdb: hint: You can change this by editing pg_hba.conf or using the option -A,
    or --auth-local and --auth-host, the next time you run initdb.
    Success. You can now start the database server using:
    pg_ctl -D /pgdata/06/data -l logfile start

    В команде initdb был использован ключ -k для включения расчета контрольных сумм. Также для этого можно использовать опцию --data-checksums.

  2. Добавьте в файл конфигурации следующие настройки:

    Внимание!

    Если затрудняетесь с копированием или вводом приведенной далее команды, скопируйте выделенные цветом строки и вставьте их с помощью предпочитаемого текстового редактора в файл postgresql.conf в каталоге PGDATA. Внимание! Команды выполняются от имени пользователя postgres.

    postgres$ cat >> $PGDATA/postgresql.conf << EOF
    enabled_extra_auth_methods = 'peer, trust'
    EOF
    postgres$ tail -6 $PGDATA/postgresql.conf listen_addresses = '*'
    port = 5432
    max_connections = 100 superuser_reserved_connections = 3
    enabled_extra_auth_methods = 'peer, trust'

    Настройка listen_addresses = '*' устанавливает все имеющиеся интерфейсы в качестве разрешенных для соединений. Прослушиваться будет порт 5432, что задает настройка port (значение по умолчанию). Максимальное количество клиентских сессий - 100, что задано параметром max_connections. Из них три зарезервированы за суперпользователем - параметр superuser_reserved_connections. Специфичная для Pangolin настройка (ее нет в PostgreSQL) enabled_extra_auth_methods разрешает использовать методы аутентификации peer и trust.

  3. Убедитесь, что в конфигурационном файле аутентификации локальные соединения разрешены без проверок подлинности:

    $ egrep -v '^($|#)' $PGDATA/pg_hba.conf local all all
    host all all
    host all all
    local replication all
    host replication all
    host replication all
    127.0.0.1/32
    ::1/128
    127.0.0.1/32
    ::1/128
    trust
    trust
    trust
    trust
    trust
    trust

    В команде egrep используется регулярное выражение, удаляющее из вывода все пустые строки и строки, начинающиеся с решетки - комментарии. Метод аутентификации trust не использует каких-либо проверок аутентичности пользователей, разрешая все соединения.

  4. Запустите сервер, направив вывод отчета в каталог /pgerrorlogs/06/. Используя psql с опцией -c выполните команду SQL для вывода версии продукта:

    $ pg_ctl -l /pgerrorlogs/06/pangolin-`date +%F_%T`.log start waiting for server to start.... done
    server started
    $ ps f -C postgres
    PID TTY
    7654 ?
    7656 ?
    7657 ?
    7659 ?
    7660 ?
    7661 ?
    7662 ?
    7663 ?
    7664 ?
    7665 ?
    STAT TIME COMMAND
    Ss 0:00 /usr/pangolin-6.2.0/bin/postgres
    Ss 0:00 \_ postgres: checkpointer
    Ss 0:00 \_ postgres: background writer
    Ss 0:00 \_ postgres: idle sessions terminator
    Ss 0:00 \_ postgres: walwriter
    Ss 0:00 \_ postgres: license checker
    Ss 0:00 \_ postgres: autovacuum launcher
    Ss 0:00 \_ postgres: autounite launcher
    Ss 0:00 \_ postgres: integrity check launcher
    Ss 0:00 \_ postgres: logical replication launcher
    Команда ps вывела процессы, входящие в состав экземпляра сервера СУБД.
    $ psql -c 'select product_version()' product_version
    ---------------------------
    Platform V Pangolin 6.2.0
    (1 строка)