ホームページ  >  記事  >  運用・保守  >  Linux システム上でアプリケーションを展開および管理する方法

Linux システム上でアプリケーションを展開および管理する方法

PHPz
PHPzオリジナル
2023-11-07 10:52:481288ブラウズ

Linux システム上でアプリケーションを展開および管理する方法

今日の IT 時代において、Linux システムは最も人気のあるオペレーティング システムの 1 つになりました。 Linux システムは安定しており、オープンソースであり、開発者がアプリケーションを簡単に開発および統合できるため、業界の多くの人々が Linux を使用してアプリケーションを展開することを好みます。

この記事では、Linux システム上でアプリケーションを展開および管理する方法を紹介します。実際のアプリケーションを事例として使用し、具体的なコード例を通じて展開と管理を実装する方法を示します。

アプリケーションの準備

始める前に、簡単なアプリケーションを準備し、実行可能ファイルにパッケージ化する必要があります。 「Hello, World!」を出力する単純な Python スクリプトを使用します。

以下は Python スクリプトのコード例です:

#!/usr/bin/env python3
print('Hello, World!')

このスクリプトを実行する前に、Python 3 がインストールされていることを確認する必要があります。コマンド ライン インターフェイスで次のコマンドを入力して確認できます。

python3 --version

Python 3 が正常にインストールされている場合は、次のような出力が表示されるはずです。

Python 3.8.5

次に、使用します。 PyInstaller Python スクリプトを実行可能ファイルにパッケージ化します。 PyInstaller は、Python コードを独立して実行可能なバイナリにパッケージ化する Python アプリケーション用のパッケージ化ツールです。次のコマンドでインストールできます:

pip3 install pyinstaller

PyInstaller をインストールした後、次のコマンドを入力して Python スクリプトをパッケージ化します:

pyinstaller --onefile hello.py

実行後、dist ディレクトリ hello にパッケージ化が表示されます。実行可能ファイル。

アプリケーションのデプロイメント

これで、パッケージ化されたアプリケーションを Linux システムにデプロイできます。例として、Linux システムの Debian ファミリ (Ubuntu など) を使用します。

まず、パッケージ化された hello 実行可能ファイルを Linux システムにアップロードします。 scp コマンドを使用してファイルをリモート サーバーにアップロードできます:

scp -P <port> /path/to/hello user@server:/path/to/destination

このコマンドでは、 は SSH ポート、/path/to/hello はパッケージ化された実行可能ファイルへのパスです。 user は Linux システムのユーザー名、server は Linux システムの IP アドレスまたはドメイン名、/path/to/destination はファイルを配置する宛先パスです。

ファイルをシステムにアップロードした後、chmod コマンドを使用してファイルを実行可能ファイルとして設定できます:

chmod +x /path/to/hello

これで、ファイルを直接実行してアプリケーションを起動できます:

./hello

次の出力が表示されます。

Hello, World!

アプリケーション管理

アプリケーションを正常にデプロイしたら、それを管理する方法を考える必要があります。アプリケーション管理の方法をいくつか紹介します。

  1. systemd の使用

systemd は、最新の Linux システム用の基本的なサービス マネージャーです。 systemctl コマンドを使用すると、その他のサービスを開始、停止、リロード、再起動できます。 systemd でアプリケーション サービスを構成するには、ユニット ファイルを作成する必要があります。 hello.service ユニット ファイルのサンプルを次に示します:

[Unit]
Description=hello service

[Service]
WorkingDirectory=/path/to/application
ExecStart=/path/to/hello

[Install]
WantedBy=multi-user.target

これを /etc/systemd/system/ ディレクトリに保存し、systemd のリロード後に起動する必要があります:

systemctl daemon-reload
systemctl start hello.service

もちろん、 systemctl コマンドを使用して、停止、再起動、リロードなどの他の操作を実行することもできます。

  1. スーパーバイザーの使用

スーパーバイザーは、Linux サーバー上の複数のプロセスを管理するためのツールです。これにより、アプリケーションをデーモン モードで実行し、クラッシュした場合に自動的に再起動できます。 hello.conf ファイルのサンプルは次のとおりです:

[program:hello]
command=/path/to/hello
directory=/path/to/application
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/hello.err.log
stdout_logfile=/var/log/hello.out.log

これを /etc/supervisor/conf.d/ ディレクトリに保存し、スーパーバイザーをリロードする必要があります:

systemctl reload supervisor

次に、supervisorctl コマンドを使用して、アプリケーションを開始します:

supervisorctl start hello

このコマンドを使用してアプリケーションを停止します:

supervisorctl stop hello

再起動、リロードなどの他のコマンドを使用することもできます。

結論

この記事では、アプリケーションをデプロイおよび管理する方法について詳しく説明しました。例として Python スクリプトを取り上げ、PyInstaller を通じて実行可能ファイルにパッケージ化して、Linux システムにデプロイします。続いて、systemd や Supervisor などのいくつかのアプリケーション管理方法について説明しました。上記の例はすべて、直接使用できるコードを提供しています。この記事が、アプリケーションを適切にデプロイして管理できるようにするための役立つガイダンスとなれば幸いです。

以上がLinux システム上でアプリケーションを展開および管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。