我在VPS中设置了一个web钩子,这样每次有新的提交时,它都会从git存储库中提取代码。我已经成功地设置了它,但它只在-hooks运行时才能工作。
在创建web钩子之后,我使用以下命令开始侦听(用VPS的实际公共IP地址替换0.0.0.0 ):
/usr/bin/webhook -hooks /root/webhooks/hooks.json -ip "0.0.0.0" -verbose然后得到以下输出:
[webhook] 2022/12/28 07:47:03 version 2.5.0 starting
[webhook] 2022/12/28 07:47:03 setting up os signal watcher
[webhook] 2022/12/28 07:47:03 attempting to load hooks from /root/webhooks/hooks.json
[webhook] 2022/12/28 07:47:03 found 1 hook(s) in file
[webhook] 2022/12/28 07:47:03 loaded: my-site.com
[webhook] 2022/12/28 07:47:03 serving hooks on http://0.0.0.0:9000/hooks/{id}
[webhook] 2022/12/28 07:47:03 os signal watcher ready我已经在GitHub中配置了web钩子:
http://0.0.0.0:9000/hooks/my-site.com只要[webhook] 2022/12/28 07:47:03 os signal watcher ready在屏幕上,web钩子就能正常工作,但是如果我按Ctrl + C键,它就会被中断,并且web钩子不再监听。
是否有一种方法可以让web钩子在后台监听,以便在任何时候在GitHub上有一个新的提交,VPS就会得到最新的代码?
发布于 2022-12-28 10:18:41
经过大量的尝试和研究,我找到了一种方法,通过安装Supervisor来保持Webhook服务器的运行。最初的文章是这里。
该条所述步骤的摘录:
sudo apt install supervisorconf.d文件夹cd /etc/supervisor/conf.dsudo nano webhooks.conf注意:使用whereis webhook可以找到指向web钩子文件夹的路径。
[program:webhooks]
command=bash -c "<path to your webhook folder> -hooks <path to your hooks JSON file>/hooks.json -ip '0.0.0.0' -port '0000' -verbose"
redirect_stderr=true
autostart=true
autorestart=true
user=<user>
numprocs=1
process_name=%(program_name)s_%(process_num)s
stdout_logfile=<path to your hooks JSON file>/supervisor.log
environment=<ENVIRONMENT>="<your/environment>",USER="<user>"touch <path to your hooks JSON file>/supervisor.log
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start webhooks:*在此之后,主管将保持您的web钩子服务器运行。
https://askubuntu.com/questions/1447638
复制相似问题