首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >makefile中的Daemonize过程

makefile中的Daemonize过程
EN

Stack Overflow用户
提问于 2022-04-11 05:13:30
回答 1查看 138关注 0票数 0

我很难在后台启动Makefile并完成Makefile目标中的进程。

这是一个简单的瓶和戏剧化的应用程序。这就是目标:

代码语言:javascript
复制
.PHONY: run-daemon                                                                                                                                                                                                                                             
run-daemon:                                                                                                                                                                                                                                                    
    poetry run gunicorn wsgi:app --daemon --workers 16 --threads 16                                                                                                                                                                                            
    poetry run dramatiq api:broker worker.tasks --processes 1

首先,我尝试使用符号作为进程的背景:

代码语言:javascript
复制
.PHONY: run-daemon                                                                                                                                                                                                                                             
run-daemon:                                                                                                                                                                                                                                                    
    poetry run gunicorn wsgi:app --daemon --workers 16 --threads 16 &                                                                                                                                                                                            
    poetry run dramatiq api:broker worker.tasks --processes 1 &

与预期的枪声背景,但戏剧化的不是。

然后,我尝试了nohup和setsid在不同的组合,有和没有符号,但这些都没有结果背景戏剧。

代码语言:javascript
复制
.PHONY: run-daemon                                                                                                                                                                                                                                             
run-daemon:                                                                                                                                                                                                                                                    
    poetry run gunicorn wsgi:app --daemon --workers 16 --threads 16 &                                                                                                                                                                                            
    setsid nohup poetry run dramatiq api:broker worker.tasks --processes 1 &

事实上,它没有完成,因为剧作家的过程没有完成。

但是,像poetry run dramatiq api:broker worker.tasks --processes 1一样,直接运行剧情片会导致剧情片在后台运行。

我如何才能使它去使make目标完成呢?

EN

回答 1

Stack Overflow用户

发布于 2022-04-15 12:15:09

您需要使用反斜杠来创建作为单个shell命令执行的多行组合体。

我想说这应该可以(注意逃避$和Co.):

代码语言:javascript
复制
SHELL:=/bin/bash
.PHONY run-daemon
run-daemon:
        daemon-executable > daemon.log 2>&1&\
        disown -h $$!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71822959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档