在 Ubuntu 20.04 上自动启动 MailHog

Auto boot MailHog on Ubuntu 20.04

我按照以下步骤在暂存环境中安装了 MailHog:

  1. sudo apt-get -y install golang-go
  2. go get github.com/mailhog/MailHog

为了手动启动服务我是这样做的:

  1. cd ~/go/bin
  2. ./MailHog

因为我正在使用 Laravel,所以我已经有 supervisor 运行 用于工作人员。 我想知道是否有办法添加新的 .conf 文件以启动 MailHog。

我试图了解 Laravel workers 是如何启动的,但到目前为止还没有成功

[program:mailhog]
process_name=%(program_name)s_%(process_num)02d
command=~/go/bin/MailHog
user=ubuntu
stdout_logfile=/var/www/api/storage/logs/mailhog.log

当我尝试启动 supervisor 时我得到 mailhog:mailhog_00: ERROR (no such file)

我需要一种自动启动 MailHog 的方法,无论我是需要主管还是通过服务。

如果您能提供从主管或使用服务启动 MailHog 的“秘诀”,我将不胜感激。

不需要主管,可以使用Linuxsystemd创建启动应用。

systemd 是现代 Linux 中的标准系统和服务管理器。它负责在 Linux 启动

期间执行和管理程序

在此之前将 mailhog 添加到您的系统路径变量以仅通过名称调用它

export PATH=$PATH:/home/YOUR-USERNAME/go/bin/MailHog

sudo systemctl enable mailhog

或者如果你使用的是任何桌面环境,你可以按照这个 https://askubuntu.com/questions/48321/how-do-i-start-applications-automatically-on-login

我想出了完整的 installation/setup 应该是怎样的:

  1. 下载和安装
sudo apt-get -y install golang-go
go get github.com/mailhog/MailHog
  1. 将 Mailhog 复制到 bin 目录
sudo cp ~/go/bin/MailHog /usr/local/bin/MailHog
  1. 创建 MailHog 服务
sudo tee /etc/systemd/system/mailhog.service <<EOL
[Unit]
Description=MailHog
After=network.target
[Service]
User=ubuntu 
ExecStart=/usr/bin/env /usr/local/bin/MailHog > /dev/null 2>&1 &
[Install]
WantedBy=multi-user.target
EOL
  1. 检查状态服务加载成功。
sudo systemctl status mailhog

输出

mailhog.service - MailHog
     Loaded: loaded (/etc/systemd/system/mailhog.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
  1. 开始服务
sudo systemctl enable mailhog
  1. 重启系统并访问http://yourdomain.com:8025/