- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
将消息发送到我的linux守护程序的最简单方法是什么? myapp foo bar
是否可以调用回调而不是启动新进程?与守护程序通信的标准方式是什么?我最合理的选择是将PID粘贴在/var/run
中并创建一个命名管道或套接字吗?
在命令行上运行的应用与其守护进程进行通信的标准方式是什么?我假设在键入myapp foo bar
时,无法要求linux调用回调吗?
最佳答案
Whats is the standard way apps which run on the command line communicate to its daemon process?
/var/run/<app>/<app>.pid
,
/var/run/<app>.pid
(感谢@Adam Katz进行编辑),
/run/<app>/<app>.pid
,
/run/<app>.pid
(请参阅
Askubuntu: Why has /var/run been migrated to /run?)。
pid
时,命令行程序(作为单独的进程运行)可以通过以下方式与守护进程通信:
int kill(pid_t pid, int sig);
。 inotify
API使发送信号方法变得多余,从而使进程可以预订文件系统事件。当您不希望守护程序对每个文件更改进行操作时,使用信号很有用,因为并非每个更改都可能使文件保持有效状态,就像修改系统配置文件时一样。
mkfifo
在文件系统中创建命名管道/fifo。唯一棘手的事情是,通常应无缓冲地打开管道,例如使用
open()
而不是
fopen()
。脚本语言有时为方便管道的读取/写入提供了便利:
Perl
设置了
line-buffered
模式,其中
$|=1
对管道有用。
|
符号分隔命令的匿名管道,这些命令作为单独的进程执行。
mysql
数据库系统由命令行客户端
mysql
和服务器
mysqld
组成,并且还可以为本地计算机或Internet上的其他客户端提供服务。
socket
进行通信。服务器侦听套接字的连接,并派生新进程,为子进程提供套接字描述符以进行处理。当 child 完成处理后,可以退出。
select()
系统调用在C中完成的,它允许进程等待一个或多个文件(包括套接字)上的事件或超时。 GNU C库文档包括
a no-wait I/O socket server example
I'm assuming its impossible to ask linux to call a callback when I type in myapp foo bar?
myapp foo bar
时,您是在命令 shell 中键入该命令的 shell ,该 shell 是在其自己的进程中运行的程序,与其他程序分开运行。
/bin/bash
。要与从
bash
侦听套接字的守护程序进行通信,我们需要在
bash
中打开套接字。而且,可以肯定的是,它存在!
bash
监听套接字。这是守护程序的基础:
Q: I have a simple debugging solution which writes things to 127.0.0.1:4444 and I'd like to be able to simply bind up a port from bash and print everything that comes across. Is there an easy way to do this?
A:
$ exec 3<>/dev/tcp/127.0.0.1/4444
$ cat <&3
exec 5<>"/dev/tcp/${SERVER}/${PORT}"
将TCP链接重定向到输入和输出的文件描述符5。
bash
程序都使用TCP支持进行编译。显然,它取决于Linux发行版。至少根据
on this answer的评论
William Pursell
bash
之外,还有其他shell。在* nix时代,许多炮弹都得到了发展。
ksh
Jade 米 shell 。
csh
C-shell。伯恩 shell
sh
。烟灰 shell 。维基百科保留
list of shells。而且这些 shell 程序各有优缺点,并不完全兼容彼此的格式!
chsh
命令。
bash
不支持您需要进行的通信,则可以设置命令 shell ,无需打开新进程即可发送特殊消息。这可能会节省您几毫秒的时间,通常不值得。但是没有什么能阻止你。您甚至可以按照
https://stackoverflow.com/a/209670/103081中的建议设置一个ipython命令 shell ,并且python可以导入与专用守护程序进行套接字通信所需的大多数内容。
关于linux - 强制CLI使用现有进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636661/
我在全局范围内安装了最新的 angular-cli,并且我的项目正在成功构建。 在阅读另一个问题的建议解决方案时,(https://github.com/angular/angular-cli/iss
根据official docs关于 .angular-cli.json 配置文件,仅支持 main、test、polyfills 作为 webpack 入口文件。 如何通过定义 .angular-cl
我想在s3存储桶中搜索文件名abc.zip,并且有将近60个存储桶,每个存储桶都有2到3个级别的子目录或文件夹。我尝试使用AWS CLI命令执行搜索,以下是我尝试过的命令,但即使文件存在于存储桶中,也
我正在尝试在 C++/CLI 中查找赋值运算符和复制构造函数的示例。我在 Google 上花了很多时间,但令人惊讶的是我找不到一个看起来很常见的例子。 最佳答案 .NET 语义没有复制构造函数或赋值运
我需要获取另一个窗口的句柄。 这是它的代码: private: System::Void btn_find_Click(System::Object^ sender, System::EventAr
有点好奇实际上有多少人使用 C++/CLI?那么有多少人在使用它呢?人们是否只在托管环境下寻找程序员的特定工作?围绕 c++/cli 的社区有多大?从我目前看到的情况来看,有不少语法变化,作为 C++
我正在阅读一些 C++/CLI Material ,并且遇到了文字字段的概念: literal int inchesPerFoot = 12; 这是否比 const 更可取,因为 const FIEL
通过 npm install -g angular-cli@latest 安装 Angular CLI (angular-cli@1.0.0-beta.16) 失败,出现以下错误 npm-debug.
我正在尝试在我的 Ember CLI 应用程序中配置适配器以根据环境使用不同的主机。在开发中,我希望它是默认的当前主机(让我通过 --proxy 选项自定义它,但在生产中我知道它将是 http://s
我最近开始使用 Angular/CLI 工具,我在执行文件时遇到了一个问题,那就是我运行时 ng serve 那么这个命令可以帮助我们在源文件中进行任何更改时自动重新加载站点,但在我的系统中它没有发生
是否有推荐的方法通过 c++ cli 包装 native c++ 库? 最佳答案 不确定是否一种尺寸适合所有人,但是,是的,这很大程度上是一个机械过程。您的 ref 类包装器应该声明一个私有(priv
我有一个关于为要在 C# 中使用的 native C++ 类创建 C++ CLI 包装器的问题。 这是一个示例代码: #include "stdafx.h" #pragma once using na
下面的代码打印 0 和 3。这是代码生成错误吗?我在 .NET 4.0 下使用 Visual Studio 2012 Update 3 RC 运行它 #include "stdafx.h" using
它是如何工作的?它是否有不同的部分 - 有些方法是托管的,有些是非托管的,它是否将每个方法都转换为托管的,试图保持所有东西都处于托管状态并在必须时进行互操作调用? 最佳答案 三种不同的compiler
如果我没记错的话,函数必须是 CLR 世界中类的成员,而全局函数在 C++/CLI 中是可能的。这是否意味着这些全局函数是某种隐藏的“全局”类的一部分?如果是这样,出于反射目的,人们将如何获取其类型?
如何在 Angular 中重建我的项目。我首先使用 ng build 构建它,但无法再次执行该命令,因为它不会让我更改文件夹。 我收到此错误消息: EPERM:不允许操作,lstat 是否有另一个命令
我遇到了两个相互引用的类的问题。我曾尝试使用接口(interface)来解决问题,但遇到了其他问题,例如类重新定义。我只是不确定如何正确执行此操作。 这是我正在做的事情的一个例子。注意:我已经去掉了所
我是 React.js 的新手,我正在尝试从 tutorialspoint 上的教程中学习但我遇到了错误。这是我执行 npm start 命令时控制台上的错误: C:\Users\HP\Desktop
我正在尝试将我的 angular cli 和 angular core 从 12 升级到 13,但看起来存在对等依赖性问题。有人遇到过这个问题吗? npx @angular/cli@13 update
我正在我的 ubuntu 上安装 influxdb_2.0.9,我按照这里的说明操作: https://docs.influxdata.com/influxdb/v2.0/install/?t=Lin
我是一名优秀的程序员,十分优秀!