在ubuntu 18.04上建立goahead.service

本文详细记录了在Ubuntu18.04上安装Goahead 5.2.0的过程,包括解压源码、编译、安装以及创建systemd service实现开机启动。通过执行简单的命令行操作,实现了Goahead的快速安装和调试模式运行。同时,文章还提供了自定义的goahead.service文件内容,确保了服务的正确启动。最终,验证了Goahead已成功开机启动并显示了其初始网页。
摘要由CSDN通过智能技术生成

项目需要在一台ubuntu 18.04的设备上安装goahead,并且设置开机启动。查阅了网友资料,实操记录如下。

安装 gohead 5.2.0

cd ~/Downloads/               # 进入工作目录
tar -xvf goahead-5.2.0.tar.gz # 解压文件包
cd ./goahead-5.2.0            # 进入到goahead源码目录
make                          # 就这么简单?
sudo make install             # 真这么简单!

到Embedthis官网下载安装goahead-5.2.0.tar.gz源码包,存放在~/Downloads/文件夹下,执行

即可完成goahead-5.2.0的编译和安装。Embedthis对goahead-5.2.0的编译做了不小的改进,只需要执行上述指令就全部OK了,比起以往的4.1.x版本的安装,还需要手工拷贝route.txt,self.crt, self.key等文件,5.2.0真的是做到了傻瓜式安装(必须赞一个先)。

运行

which goahead

发现一个软链接存放于 /usr/local/bin/goahead,链接指向 /usr/local/lib/goahead//bin/goahead

运行

sudo goahead -v --home /etc/goahead /var/www/goahead

可以正常运行起来,也没有了以往版本拿不到本机IP地址的缺陷(再次赞一个!)。

为 goahead 建立 systemctl 的 service

ubuntu 18.04不使用 init.d,也不使用rc.local建立开机自动执行的程序,而是使用了由 systemctl 控制的 service 作为开机自动启动的一种“服务”。查阅网友资料和其它参考资料,记录如下。

cd /etc/systemd/system                  #  进入到工作目录
sudo vi goahead.service                 #  编辑 service 文件,内容附后
sudo chmod +x+x+x goahead.service       #  使这个 service 文件可执行
sudo systemctl daemon-reload            #  使新加入的 service 在 service 列表中生效
sudo systemctl start goahead.service    #  启动这个 service
                                        #  或者执行
                                        #  sudo service goahead start
                                        #  也可以启动这个 service
exit 0;

顺序运行上述指令集可将 goahead 纳入到 ubuntu 18.04 的 service 中

然后运行

ps -A | grep goahead 验证一下 goahead 是否已经启动,可以看到 goahead 已经在进程列表中了,使用任何一种浏览器(我的机器是Firefox),在 URI 地址中输入 127.0.0.1,然后回车,可以看到 goahead 的初始网页,如下图。

goahead original home page
Goahead Orginal Home Page

搞定!

为 goahead 写的 goahead.service 文件

cat /etc/systemd/system/goahead.service,内容如下

[Unit]
Description=Embedthis GoAhead Web Server

[Service]
ExecStart=/usr/local/bin/goahead -v --home /etc/goahead /var/www/m
ExecReload=/usr/local/bin/goahead -v --home /etc/goahead /var/www/m
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=simple

[Install]
WantedBy=multi-user.target
Alias=goahead.service

说明:

  1. 一个 systemctl 的 service 文件包括[Unit]、[Service] 和 [Install] 三个部分的内容,其中 [Service] 部分是这个程序作为一种”服务“的约束,详情参考网友大侠的资料,链接在最后面。
  2. 我的这个实例中使用的 goahead 的带 -v 的调试模式,生产环境中当然不必使用调试了啦
  3. goahead 是独立的一个进程,所以省去了一些 -pre 和 -post 的依赖。

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬核老骆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值