GVKun编程网logo

与正在运行的python守护程序进行通信(与正在运行的python守护程序进行通信协议)

16

针对与正在运行的python守护程序进行通信和与正在运行的python守护程序进行通信协议这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展AdobeBrackets和正在运行的Ruby/Py

针对与正在运行的python守护程序进行通信与正在运行的python守护程序进行通信协议这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Adobe Brackets和正在运行的Ruby / Python程序、crontab:正在运行的python脚本,但不执行OS命令、java-与正在运行的PHP应用程序接口?、ms-access – 使用代码对正在运行的应用程序进行屏幕捕获等相关知识,希望可以帮助到你。

本文目录一览:

与正在运行的python守护程序进行通信(与正在运行的python守护程序进行通信协议)

与正在运行的python守护程序进行通信(与正在运行的python守护程序进行通信协议)

我编写了一个作为守护程序运行的小型Python应用程序。它利用线程和队列。

我正在寻找更改此应用程序的常规方法,以便可以在其运行时与其进行通信。通常,我希望能够监控其健康状况。

简而言之,我希望能够执行以下操作:

python application.py start  # launches the daemon

稍后,我希望能够进行以下操作:

python application.py check_queue_size  # return info from the daemonized process

明确地说,实现Django启发式语法没有任何问题。我不知道该怎么做是将信号发送到守护进程(启动),或者如何编写守护进程来处理和响应此类信号。

就像我在上面说的那样,我正在寻找通用的方法。我现在唯一能看到的就是告诉守护程序不断将可能需要的所有内容记录到文件中,但是我希望有一种更简单的方法来处理它。

更新:
哇,很多很棒的答案。非常感谢。我想我会同时研究Pyro和web.py/Werkzeug的方法,因为Twisted远远超出了我现在想咬的范围。我想,下一个概念性挑战是如何在不中断工作线程的情况下与我的工作线程通信。

再次感谢。

Adobe Brackets和正在运行的Ruby / Python程序

Adobe Brackets和正在运行的Ruby / Python程序

所以最近我一直在尝试各种文本编辑器和IDE,以查看自己喜欢什么.我真的很喜欢Brackets的Web开发人员方面,这是我设计的目的,但同时也涉及一些用于构建和运行Python / Ruby程序的扩展.

我已经尝试过了,但据我所知,这似乎并没有做任何事情:
https://github.com/vhornets/brackets-builder

并且,这在括号中添加了用于运行程序的运行按钮:
https://github.com/jadbox/brackets-integrated-development

后者似乎可以正常工作…直到您制作一个要求用户输入的小程序,该程序再也无法运行,该程序消失,然后必须重新启动Brackets才能将其取回.我使用的代码如下:

puts"Please enter your name: "
n = gets. chomp

要么

n = input("Please enter your name: ")

知道是什么原因造成的吗?我问了开发人员,但没有回音.如果不是那个问题,我可能会专门使用Brackets.

尝试了Sublime Text 3了一段时间,但是不喜欢缺少像实时预览插件这样的Brackets.但是,看起来它运行Python / Ruby(除了Java和C/C++之外)代码没有问题.

解决方法:

您可能要尝试运行命令行工具(例如以下工具之一)的通用扩展名:

> Command Line Shortcuts
> Brackets Build System
> Command Runner
> Brackets Shell access
> Brackets Terminal
>您上面提到的Brackets Builder-看起来就像您选择“编辑>编辑生成器以配置所需的命令,然后可以按Ctrl-Alt-B来运行它们.

crontab:正在运行的python脚本,但不执行OS命令

crontab:正在运行的python脚本,但不执行OS命令

我有这个crontabconfiguration设置和下面的脚本。

MAILTO="abc@avc.com" 41 15 * * * /usr/bin/python /home/atweb/Documents/opengrok/setup_and_restart.py > /home/atweb/Documents/opengrok/restart_log.txt 2&>1

而python脚本是这样的

import subprocess import os from time import gmtime,strftime def main(): print(strftime("%a,%d %b %Y %X +0000",gmtime())) print('Running opengrok index..') subprocess.call(["cd","/home/atweb/Documents/opengrok"]) subprocess.call(["./stop_website"]) print('Stopped website...') subprocess.call(["./index_opengrok"]) print('finished indexing...') subprocess.call(["./setup_opengrok"]) print('setup finished...') subprocess.call(["./start_website"]) print('Finished opengrok index..') if __name__ =='__main__':main()

这是输出日志

Tue,27 Aug 2013 22:41:01 +0000 Running opengrok index..

由于某种原因脚本已经开始运行,但脚本的其他部分还没有完成。 我不知道如果它的操作系统故障或cron故障或python。 当我从命令行调用脚本时,脚本本身运行良好。

在Linux crontab中,我的程序的stderr必须redirect,为什么?

如何检查哪些程序计划在Windows中运行?

Crontab每5分钟

使用crontab在@reboot上运行“screen -S name ./script”命令

PHP的Cron作业不运行

有谁知道为什么会发生这种情况?

Crontab运行问题

如何在cronjob脚本中提供用户input

SCHTASKS.exe的参数生成器

“stdin:不是一个tty”从cronjob

无法使用crontab插入非英文字符到数据库来运行程序

你需要shell来运行cd命令。 在你的crontab中将sh或者bash定义为SHELL。

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO="abc@avc.com" # mh dom mon dow command 41 15 * * * /usr/bin/python /home/atweb/Documents/opengrok/setup_and_restart.py > /home/atweb/Documents/opengrok/restart_log.txt 2&>1

或者在python中打开shell作为子进程。

两件事:你的cd将设置该子进程的目录,立即退出:

subprocess.call(["cd","/home/atweb/Documents/opengrok"])

换句话说,这是一个浪费的步骤。

下一个子过程对前一个环境不了解:

subprocess.call(["./stop_website"])

…所以它将无法运行。 如果你想让所有的程序在这个目录下运行,使用:

os.chdir("/home/atweb/Documents/opengrok")

在任何subprocess.call()行之前。

java-与正在运行的PHP应用程序接口?

java-与正在运行的PHP应用程序接口?

我想知道是否可以通过PHP与正在运行的控制台程序(最好在Linux / Debian上运行)进行通信.我目前正在尝试为一个(现有的)控制台Java程序创建一个Web界面,我不知道是否有任何方法可以做到这一点.我可以“注入”一段代码,比如说一个远程控制模块,然后使用它通过PHP“远程控制”脚本吗?
(如果不更改现有的.jar文件/只需注入,无需重新编程,那将是非常不错的选择)

我感谢每一个建议!

解决方法:

如果正在运行的程序没有通信接口,则无法与其通信.如果确实如此,那么答案很大程度上取决于程序如何接收外部输入.

如果程序包含网络侦听线程(守护程序),则可以使用CURL或PHP的原始套接字在回送接口上与它进行通信.

与程序通信的其他方式是共享对文件的访问(PHP写入文件,Java读取文件)或通过数据库.

数据库将是最好的选择-它是线程安全的,并且PHP和Java都具有出色的MysqL支持(通过JDBC的Java).

但是,如果不需要实际与正在运行的程序交互,而仅需要启动/停止/重新启动它,则可以使用PHP中的system()函数来实现.

ms-access – 使用代码对正在运行的应用程序进行屏幕捕获

ms-access – 使用代码对正在运行的应用程序进行屏幕捕获

我需要运行一些代码来捕获在 Windows桌面上运行的应用程序的窗口(Windows XP在这里很好).

Web上有许多VB6示例,但它们往往只捕获正在运行的VB6应用程序或桌面.我正在寻找一个捕获给定窗口/应用程序的解决方案.所以,我希望能够提供要捕获的应用程序窗口的名称.

快速的Bing搜索确实产生了一些代码示例,但它们捕获了桌面或当前运行的VB6应用程序.我愿意修改其中一个来捕获给定的窗口(命名应用程序).

但是在我这样做之前,也许某人有一个链接到vb6或VBA库代码示例,该示例将捕获/保存给定的命名应用程序窗口到硬盘上的bmp或某种类型的图像文件.

这里有一个VB6或VBA解决方案的链接.我愿意修改现有的例子.

解决方法

您可能已经知道这一点,但窗口由一个名为 window handle的唯一4字节长标识.任何获取屏幕截图的代码示例都可以执行任何窗口:桌面,当前应用程序或任何正在运行的应用程序.您只需要使用正确的窗口句柄.

这是一些构建块:

> Find基于标题或部分标题的应用程序的窗口句柄.取自Karl E Peterson优秀的VB6网站.或者here’s一篇Microsoft知识库文章做同样的事情.编辑或者对于像您这样的一次性工作,只需通过使用调试工具(如Spy++)或免费clone单击窗口即可手动找到它.
>这是桌面get a screen capture的代码,来自Steve McMahon的优秀vbAccelerator.只需更改代码,使其使用步骤1中找到的窗口句柄,而不是GetDesktopWindow()返回的窗口句柄.

今天关于与正在运行的python守护程序进行通信与正在运行的python守护程序进行通信协议的分享就到这里,希望大家有所收获,若想了解更多关于Adobe Brackets和正在运行的Ruby / Python程序、crontab:正在运行的python脚本,但不执行OS命令、java-与正在运行的PHP应用程序接口?、ms-access – 使用代码对正在运行的应用程序进行屏幕捕获等相关知识,可以在本站进行查询。

本文标签: