ホームページ >バックエンド開発 >Golang >systemd を使用して golang アプリケーションをデプロイおよび防御する方法

systemd を使用して golang アプリケーションをデプロイおよび防御する方法

PHPz
PHPzオリジナル
2023-04-05 09:09:501418ブラウズ

クラウド コンピューティングの時代では、迅速な展開により、開発者は製品を迅速に提供し、ユーザーのニーズに迅速に対応できます。 Golang は、高速なコンパイルと効率的な同時実行パフォーマンスを兼ね備え、近年クラウド コンピューティングの分野で欠かせないプログラミング言語となっています。しかし、アプリケーションがクラッシュしたらどうなるでしょうか?アプリケーションを実行し続けるには、デーモンを使用してアプリケーションを監視し、再起動する必要があります。この記事では、systemd を使用して golang アプリケーションをデプロイおよび防御する方法を紹介します。

1. インストールと設定 systemd

systemd は、現在最も人気のある初期化システムおよびデーモン管理システムの 1 つです。システム サービスとデーモンを開始し、それらのステータスを監視し、必要に応じて再起動する責任があります。 systemd を使用する前に、systemd をインストールする必要があります。

次のコマンドを使用して systemd をインストールします:

$ sudo apt-get update
$ sudo apt-get install -y systemd

2. サービス ファイルを作成します

デーモンを作成する前に、systemd サービス ファイルを作成する必要があります。サービス ファイルは、サービスを説明する情報が含まれるテキスト ファイルです。サービス ファイルの場所は、/etc/systemd/system/ ディレクトリ内です。たとえば、golang-demo.service という名前のサービス ファイルを作成します:

$ sudo touch /etc/systemd/system/golang-demo.service

golang-demo.service ファイルを編集します:

$ sudo nano /etc/systemd/system/golang-demo.service

ファイルに次の行を追加します:

[Unit]
Description=My golang app
After=network.target

[Service]
Type=simple
User=ubuntu
Group=ubuntu
ExecStart=/usr/local/bin/golang-demo

[Install]
WantedBy=multi-user.target

ここで、

  • [Unit] セクションには、サービス名と説明、およびサービスを開始するタイミングが含まれます ( network.target の後)。
  • [サービス] セクションでは、ユーザー、使用するグループ、起動スクリプト ファイルの場所など、サービスの開始の詳細について説明します。
  • [Install] セクションでは、systemd がサービスを開始するターゲットを指定します。

3. golang アプリケーションを作成する

次に、golang-demo という名前の golang アプリケーションを作成する必要があります。ターミナルで、次の git コマンドを使用して、単純な go アプリケーションのクローンを作成します:

$ git clone https://github.com/shalar/golang-demo.git

プロジェクト ディレクトリに移動し、アプリケーションをビルドしてコンパイルします:

$ cd golang-demo
$ go build

生成されたバイナリをコピーする必要がありますfilegolang-demo /usr/local/bin ディレクトリに移動します。

$ sudo mv golang-demo /usr/local/bin/

4. サービスを開始してテストします

これで、サービスを開始してテストする準備が整いました。コマンドを使用してサービスを開始します:

$ sudo systemctl start golang-demo.service

サービスのステータスを確認します:

$ sudo systemctl status golang-demo.service

active (running)」を参照してください。これは、サービスが実行中であり、実行できることを意味します。ブラウザ http://localhost:8080 を通じてアクセスすると、出力が表示されるはずです。

5. ブート時の自動開始

前述のとおり、[Install] セクションでは、どのターゲット systemd でサービスを開始するかを指定します。これで、次のコマンドを使用して起動時に自動的に開始できるようになります:

$ sudo systemctl enable golang-demo.service

これで、システムは開始されるたびにサービスを自動的に開始します。

6. 結論

この記事では、systemd を使用して golang アプリケーションをデプロイおよび保護する方法を紹介します。 systemd は、サービスの開始、停止、再起動、その他の操作を簡単に管理できる人気のデーモン マネージャーであり、アプリケーションを常にオンラインに保ちます。

以上がsystemd を使用して golang アプリケーションをデプロイおよび防御する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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