Openbsd

如何在啟動時啟動我的 Web 應用程序?OpenBSD

  • February 15, 2022

我剛剛將一個 Web 應用程序從 NodeJS 遷移到 Go,我無法讓它在啟動時執行。以前使用我的 Node 應用程序,我會使用pm2來處理啟動應用程序。但是,我找不到使用 Go 執行此操作的好方法。

我已經考慮過使用自己的服務,rc.d但我真的找不到任何有用的東西。是否有捷徑可尋?如果需要,我可以將原始碼編譯為二進製文件。

目前我只是在 TTY 中執行它,但我真的希望它成為一個守護程序。

**編輯:**澄清一下,我正在使用 NGiNX 反向代理 Go 應用程序。

如果您不想使用rc.d基礎架構(您應該),您可以添加任何適合的內容,/etc/rc.local但請記住那裡的所有內容都執行為root,因此您可能希望以su其他使用者身份執行您的應用程序(同時你在它,檢查你是否想在chroot某個地方執行它)。

如果你想走這rc.d條路,你可能想先瀏覽一下 and 的手冊頁,rc.drc.subrat 的模板/usr/ports/infrastructure/templates/rc.template也可能有很大幫助。另一個選擇是找到一個已經移植的 Go Web 應用程序,安裝它並查看它是如何執行的。例如 gitea 作為編譯後的二進製文件安裝,然後有一個非常簡單的/etc/rc.d/gitea腳本:

#!/bin/ksh
#
# $OpenBSD: gitea.rc,v 1.6 2021/01/17 21:07:41 pvk Exp $

daemon="/usr/local/sbin/gitea"
daemon_user="_gitea"

. /etc/rc.d/rc.subr

rc_bg=YES
rc_reload=NO

rc_cmd $1

引用自:https://unix.stackexchange.com/questions/689606