标签: daemon

正好杀死在Linux上运行的.NET Core守护程序

我创建了一个在Ubuntu 14.04计算机上作为守护进程运行的.NET Core控制台应用程序.

我想在不强制服务的情况下停止服务,能够处理kill事件.

我怎样才能做到这一点?

c# linux service daemon .net-core

32
推荐指数
2
解决办法
2万
查看次数

.NET Core中的跨平台后台服务(想想windows service/unix守护进程)?

所以我有一个应用程序,它由API和Windows服务(由Topshelf包装)组成,它使用RabbitMQ持续监听事件并按需处理数据.

对于教育和娱乐,我试图将其重写为可在.NET Core和unix上运行的等效设置(例如,在AWS上的docker容器中)

如果我想保持跨平台的话,使用.NET Core实现等效于Windows服务(永远运行的后台进程)的最佳方法是什么?

unix daemon cross-platform .net-core

31
推荐指数
2
解决办法
7885
查看次数

高效的Python守护进程

我很好奇你如何在后台运行python脚本,每60秒重复一次任务.我知道你可以使用&在后台放置一些东西,对这种情况有效吗?

我正在考虑做一个循环,让它等待60秒并重新加载它,但有些事情让人感觉不舒服.

python daemon

30
推荐指数
3
解决办法
5万
查看次数

如何运行长期(无限)Python进程?

我最近开始尝试使用Python进行Web开发.到目前为止,我已经使用Apache与mod_wsgi和用于Python 2.7的Django Web框架取得了一些成功.但是,我遇到了一些问题,即流程不断运行,更新信息等等.

我编写了一个脚本,我称之为"daemonManager.py",可以启动和停止所有或单个python更新循环(我应该称之为守护进程吗?).它通过分叉,然后为应该运行的特定函数加载模块并启动无限循环来实现.它会保存PID文件/var/run以跟踪进程.到现在为止还挺好.我遇到的问题是:

  • 偶尔会有一个进程退出.我ps早上检查,过程刚刚结束.没有记录错误(我正在使用该logging模块),我正在报道我能想到的每个异常并记录它们.此外,我不认为这些退出过程与我的代码有任何关系,因为我的所有进程都运行完全不同的代码并以非常相似的间隔退出.我当然错了.Python进程在运行数天/数周后死亡是否正常?我该如何解决这个问题?我应该编写另一个守护进程来定期检查其他守护进程是否仍在运行吗?如果守护进程停止怎么办?我对如何处理这个问题感到很茫然.

  • 如何以编程方式知道进程是否仍在运行?我正在保存PID文件/var/run并检查PID文件是否在那里以确定进程是否正在运行.但是如果进程刚刚因意外原因而死,则PID文件将保留.因此,每次进程崩溃(每周几次)时,我都必须删除这些文件,这会破坏目的.我想我可以检查一个进程是否正在文件中的PID上运行,但如果另一个进程已启动并被分配了死进程的PID怎么办?我的守护进程会认为这个进程运行正常,即使它已经很久了.我再次对如何应对这种情况感到茫然.

关于如何最好地运行无限Python进程的任何有用的答案,希望也能解释上述问题,我会接受


我在Ubuntu机器上使用Apache 2.2.14.
我的Python版本是2.7.2

python apache daemon infinite-loop

29
推荐指数
1
解决办法
3万
查看次数

如何使用python-daemon设置守护进程?

如果这是一个新手问题,我是守护进程的新手.

在其他几个答案中(例如,这个问题),人们建议使用python-daemon包,因为它完全实现了PEP 3143标准.

不幸的是,python-daemon 在文档上有点亮(或者更有可能我对知识/经验有点轻视......;)),我想我可能遗漏了一些非常基本的东西.这是我正在做的事情:

我有以下内容:

import daemon

logfile = open('daemon.log', 'w')

context = daemon.DaemonContext(stdout = logfile, stderr = logfile)

context.open()

with context:
    do_something_1()
    do_something_2()
Run Code Online (Sandbox Code Playgroud)

问题:如何使用python-daemon设置守护进程,如何启动并停止它?


附注:

我基本上猜测这个.open()方法应该如何/是否应该在这里使用 - 文档在这一点上并不是很明确.无论我是否包括它,似乎都会发生同样的事情.

所以,现在我该怎么办?当我尝试运行此文件时,例如:

python startConsumerDaemons.py
Run Code Online (Sandbox Code Playgroud)

它似乎运行do_something_1(),但不是第二个.而且,它似乎离开程序连接到终端窗口.IE,stdout没有重定向,当我关闭终端窗口时,进程被终止.所以,我很确定我在这里做错了什么......我应该做些什么呢?

最后,一旦我让守护进程运行,我该如何停止/重启它(例如,如果我对底层代码进行了更改)?

python daemon python-daemon

29
推荐指数
3
解决办法
3万
查看次数

将node.js + expressjs应用程序的NODE_ENV设置为ubuntu下的守护进程

我按照这些说明让守护进程正常工作:http: //kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/

但是因为这会在开发模式下启动应用程序,所以日志文件会被socket.io调试日志发送垃圾邮件.

我尝试在upstart-conf文件中将NODE_ENV设置为production,但没有成功.

script
    export HOME="/root"
    export NODE_ENV=production

    exec /usr/local/bin/node /where/yourprogram.js >> /var/log/node.log 2>&1
end script
Run Code Online (Sandbox Code Playgroud)

没用.

linux daemon node.js express

28
推荐指数
3
解决办法
6万
查看次数

JVM如何终止守护程序线程?或者如何编写正常终止的守护程序线程

假设场景:
我有一个守护程序线程负责一些I/O,主线程完成并返回,JVM决定终止我的守护程序线程.

它是如何做到的?打断?最终确定?如何对我的守护程序线程进行编码,以便在终止时能够优雅地做出反应?

java multithreading jvm daemon

28
推荐指数
2
解决办法
2万
查看次数

如何正确使用log_daemon_msg,log_end_msg,log_progress_msg编写正确的守护程序脚本?

我很惊讶不能找到关于这些功能的正确用户的任何文档:

log_daemon_msg
log_progress_msg
log_end_msg
log_action_msg
log_success_msg
log_failure_msg
log_warning_msg
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到有关其使用的更多信息以及其他相关功能?

请注意,我发现它们在里面/lib/lsb/init-functions但是关于它们的使用的文档大多缺失.

daemon

28
推荐指数
1
解决办法
3万
查看次数

在Ruby中使用双叉创建一个守护进程

在Ruby中创建性能良好的Unix或Linux守护进程的正确方法是什么?

无论如何,一个表现良好的守护进程的定义是什么,以及如何在Ruby中编写这样的程序?

ruby unix linux fork daemon

27
推荐指数
2
解决办法
7946
查看次数

Java程序应该监听什么才能成为一个优秀的Linux服务?

在Linux中,您可以提供以下命令:

service <someService> start
service <someService> stop
Run Code Online (Sandbox Code Playgroud)

而不是杀死过程kill -9 <someService>.正如我在之前的一个问题中所了解到的,这是发送进程a SIGTERM(前者)和SIGKILL后者(后者)之间的区别.

那么如何将普通JAR或WAR作为可以使用这些命令启动和停止的服务/守护进程"注册"(和编码)?我认为Java必须有一些API来处理SIGTERMs?

提前致谢!

java linux service daemon

27
推荐指数
1
解决办法
1万
查看次数