Openbsd
如何在啟動時啟動我的 Web 應用程序?OpenBSD
我剛剛將一個 Web 應用程序從 NodeJS 遷移到 Go,我無法讓它在啟動時執行。以前使用我的 Node 應用程序,我會使用pm2來處理啟動應用程序。但是,我找不到使用 Go 執行此操作的好方法。
我已經考慮過使用自己的服務,
rc.d
但我真的找不到任何有用的東西。是否有捷徑可尋?如果需要,我可以將原始碼編譯為二進製文件。目前我只是在 TTY 中執行它,但我真的希望它成為一個守護程序。
**編輯:**澄清一下,我正在使用 NGiNX 反向代理 Go 應用程序。
如果您不想使用
rc.d
基礎架構(您應該),您可以添加任何適合的內容,/etc/rc.local
但請記住那裡的所有內容都執行為root
,因此您可能希望以su
其他使用者身份執行您的應用程序(同時你在它,檢查你是否想在chroot
某個地方執行它)。如果你想走這
rc.d
條路,你可能想先瀏覽一下 and 的手冊頁,rc.d
而rc.subr
at 的模板/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