我编写了一个 c 程序,它在后台运行以执行正在进行的功能。它工作正常,但我想在它运行时从中获取信息。 我使用这些指令使程序成为守护进程: http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html 如何修改程序 C 代码,使其在运行时接受命令行参数?
例子:
$ daemon_program
<-- 启动守护程序,它现在在后台运行。
$ daemon_program --status
<-- 输入带有参数的守护程序名称,让它向终端输入信息。
$ Status is good
<-- daemon_program 将状态写入终端
是否有此类设置的名称?
最佳答案
你的程序会做这样的事情(伪代码):
void main(string[] args) {
if( args[1] == "-d" ) {
namedPipe = createNamedPipe("mydaemon");
startThread( doStuff );
while( ReadCommandsFromNamedPipe( out command ) ) {
ExecuteCommand( command );
}
}
else {
namedPipe = connectToExistingNamedPipe("mydaemon");
if( namedPipe == null ) die("Daemon is not running");
while( PromptUserForCommandFromStdIn( out cmd ) ) {
sendCommandDownNamedPipe( cmd );
readResponseFromNamedPipe();
}
}
}
用法:
>./myDaemon -d
<< MyDaemon now running and listening for commands on named-pipe
> ./myDaemon
<< Please enter an interactive command
> get status
<< blargh
关于c - 在 linux 中编写带有交互式命令行界面的 C 守护程序类型程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700993/