クラウド コンピューティングの時代では、迅速な展開により、開発者は製品を迅速に提供し、ユーザーのニーズに迅速に対応できます。 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 サイトの他の関連記事を参照してください。