Kubuntu 20.04の場合
コンピューター上で Docker コンテナーを正常に起動するには、Postgres プロセスを強制終了する必要があります。これを行うには、次の操作を行います。
sudo ss -lptn 'sport = :5432'
出力は次のようになります:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 244 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=1003,fd=5))
kill <pid>
これで、Postgres データベースを持つ Docker コンテナを実行できるようになります。Postgres データベースを実行する前にこれらの手順を実行する必要がないようにしたいと思います。何らかの理由でlsof -i :5432
プロセスが返されません。
Postgres がバックグラウンドで実行されるのは標準的な動作ですか? このプロセスを停止しても安全ですか? 安全である場合、このプロセスがバックグラウンドで自動的に実行されるのを停止するにはどうすればよいですか?
次のコマンドを試しましたが、成功しませんでした。
sudo systemctl disable postgresql
sudo update-rc.d postgresql disable
答え1
データベースプロセスを強制終了することは、データベースを破壊するのに非常に良い方法です。PostgreSQLはデフォルトではインストールされていないので、何かまたは誰か何らかの理由でマシンに配置されているはずです。システム上でそれが必要なものがあるかどうかを確認する必要があります。
ただし、質問に答えるには、次のようにして PostgreSQL を安全に停止できます。
sudo service postgresql stop
次のようにして、起動時に PostgreSQL が起動しないようにすることができます。
sudo service postgresql disable
システム上にデータベース エンジンをローカルにインストールする必要のないものがある場合は、削除できます。
sudo apt --purge remove postgresql
注記:これにより、サーバー要素のみが削除され、PostgreSQL インストールに接続するためのクライアント ライブラリはそのまま残ります。