ホーム

SystemdでGo言語のウェブアプリをデーモン化して永続化する方法

GoのアプリをAWSのEC2にあげて

go run main.go

とかでアプリをあげるけど、それを永続化してデーモン化して仮に落ちても自動で再起動するようなことをしたかった。

場所

$ cd /etc/systemd/system
$ vi app.service

コード

[Unit]
Description=App

[Service]
ExecStart=/bin/bash -c 'go run main.go'
WorkingDirectory=/home/ubuntu/go/src/html/
Restart=always
Type=simple
User=ubuntu

[Install]
WantedBy=multi-user.target

ポイント

プロセスの自動再起動

Restart=always

実行

$ sudo systemctl daemon-reload
$ sudo systemctl start app.service
$ sudo systemctl status app.service

動いてることを確認

m$ sudo systemctl status app.service
● app.service - App
   Loaded: loaded (/etc/systemd/system/app.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-24 21:59:06 UTC; 3min 31s ago
 Main PID: 17638 (go)
    Tasks: 15 (limit: 547)
   CGroup: /system.slice/app.service
           ├─17638 go run main.go
           └─17683 /tmp/go-build125150235/b001/exe/main

Oct 24 21:59:06 ip-10-0-56-179 systemd[1]: Started App.
Oct 24 21:59:11 ip-10-0-56-179 bash[17638]: Now listening on: http://localhost:8080
Oct 24 21:59:11 ip-10-0-56-179 bash[17638]: Application started. Press CTRL+C to shut down.

追記

$ sudo systemctl list-unit-files --type=service | grep app
app.service                                    disabled 

disabledでもどうやら問題なく動くようだ

関連

[Systemdでウェブアプリをデーモン化して永続化する最良な方法](https://off.tokyo/blog/systemd%e3%81%a7%e3%82%a6%e3%82%a7%e3%83%96%e3%82%a2%e3%83%97%e3%83%aa%e3%82%92%e3%83%87%e3%83%bc%e3%83%a2%e3%83%b3%e5%8c%96%e3%81%97%e3%81%a6%e6%b0%b8%e7%b6%9a%e5%8c%96%e3%81%99%e3%82%8b%e6%9c%80/)

Pocket
LinkedIn にシェア

エンジニアにおすすめできる本

Card image cap
リーダブルコード

より良いコードを書くためのシンプルで実践的なテクニック

Card image cap
Webを支える技術

HTTP,URI,HTML,そしてREST

Card image cap
誰でもPythonで作れる

儲かるAIとソフトウェアの作り方

Card image cap
プログラマが知るべき97のこと

現場で使える実践哲学のマスターピース

Card image cap
情熱プログラマー

時代を超えて。ソフトウェア開発者の幸せな生き方

Card image cap
アジャイルサムライ

プログラミング達人開発者への道

Card image cap
Rubyを作った男 まつもとゆきひろ

コードの世界 スーパー・プログラマになる14の思考法

ご提供 sponsor
 

Meee!(ミー)は、ビジネスからプライベート利用まで、個人のスキルを気軽に売り買いできるスキルマーケットです。カテゴリや居住地から、検索することが可能です。

 

ランゲージエクスチェンジは、ネイティブスピーカーと気軽にマッチングできる言語交換プラットフォームです。あなたの地元に住む外国人を探したり、留学や海外移住の前に、現地のネイティブスピーカーと繋がることもできます!

宣伝
 

りょすけトークchは、仕事や私生活をより豊にするYouTubeチャンネルです。文献(本、映画、論文)から役に立つ情報をまとめ、生涯にわたり役に立つ哲学をお届けしています。是非、チャンネル登録してみてね

-ホーム
-, , , ,

Copyright© offブログ! , 2021 All Rights Reserved Powered by AFFINGER5.