Daemon
Application developed by go could be deployed with daemon mode. This is a common way when the application is a simple API server. The example here is using systemctl
under Ubuntu.
Set server environment
To use your application, first you need to set your server’s environment, like initialing database or adding permissions.
Create project folder
Create a folder to store your executable file. We are creating it under /home/ubuntu/
here.
- api-server
- config.yaml
ℹ️
Remember to add your config file or static resources in the folder, or there will be some errors.
Create service
Add a service file to your /etc/systemd/system/
folder.
/etc/systemd/system/my-api.service
[Unit]
Description=SERVER API
# Change it to your database if needed
After=mariadb.service
[Service]
Type=simple
WorkingDirectory=/home/ubuntu/server/
ExecStart=/home/ubuntu/server/api-server
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Start service
Start your service with:
sudo systemctl start my-api.service
GoFrame
provide graceful restart and shutdown functions under *nix
system. You could use the following command to restart or shutdown your service gracefully:
- Restart service:
kill -SIGUSR1 ProcessID
- Shutdown service:
kill -SIGTERM ProcessID
ℹ️
You could also use other tools like
supervisor
to manage your services.