Linux kernel 与“一起运行服务器应用程序进程”;“记录器”;

Linux kernel 与“一起运行服务器应用程序进程”;“记录器”;,linux-kernel,linux-device-driver,embedded-linux,openwrt,Linux Kernel,Linux Device Driver,Embedded Linux,Openwrt,我收到一个可以在Linux内核4.4.60上运行的应用程序代码,如下cmd-根据他们的应用程序说明:- /usr/sbin/server_application | logger -t tag & 如果我只在后台使用“server\u应用程序&”运行server\u应用程序,那么进程尝试创建的套接字将无法启动。显然,客户端应用程序(当然是单独运行)超时了 根据我的信息,linux logger实用程序仅在系统日志中创建条目。 问:应用程序可能需要什么,需要应用程序在系统日志中记录标记条

我收到一个可以在Linux内核4.4.60上运行的应用程序代码,如下cmd-根据他们的应用程序说明:-

/usr/sbin/server_application | logger -t tag &
如果我只在后台使用“
server\u应用程序&
”运行server\u应用程序,那么进程尝试创建的套接字将无法启动。显然,客户端应用程序(当然是单独运行)超时了

根据我的信息,linux logger实用程序仅在系统日志中创建条目。

问:应用程序可能需要什么,需要应用程序在系统日志中记录标记条目

我正在尝试反向工程,以解释为什么它需要记录器

如果您对此有任何想法,我们将不胜感激


提前感谢。

如果在后台运行
server\u应用程序
,进程可能根本没有打开任何标准输出,对
stdout
的任何写入都将失败。如果您创建了一个将标准输出传输到程序的管道,
server\u应用程序的
stdout
将具有不同的特征

您还可以尝试通过使用
strace
运行这两个命令来找出差异,例如:

strace -o /tmp/syscall.log /usr/sbin/server_application &
strace -o /tmp/syscall.log /usr/sbin/server_application | logger -t tag &

通过阅读
/tmp/syscall.log
在运行接近结束时查找前者失败的系统调用,然后将其与后者的调用进行比较。

如果您在后台运行
服务器应用程序
,则进程可能根本没有标准输出,无法打开任何内容和写入
stdout
将失败。如果您创建了一个将标准输出传输到程序的管道,
server\u应用程序的
stdout
将具有不同的特征

您还可以尝试通过使用
strace
运行这两个命令来找出差异,例如:

strace -o /tmp/syscall.log /usr/sbin/server_application &
strace -o /tmp/syscall.log /usr/sbin/server_application | logger -t tag &

通过阅读
/tmp/syscall.log
查找前一个运行结束时失败的系统调用,然后将它们与后一个调用进行比较。

这与C有什么关系?是的,没有直接关系,删除了C标记。那么,这与编程有什么关系吗?听起来你应该问超级用户之类的问题。我想在某种程度上是这样的。我试图反向工程一个应用程序,它似乎使用记录器管道输出作为自身初始化的输入。这与C有什么关系?是的,没有直接关系,删除了C标记。那么,这与编程有什么关系吗?听起来你应该问超级用户之类的问题。我想在某种程度上是这样的。我正在尝试反向工程一个应用程序,它似乎使用记录器管道输出作为自身初始化的输入。谢谢。1.总之,这里的应用程序“server\u application”将把stdout上出现的“tag”作为应用程序本身的输入,并相应地运行。因此,我可以使用任何其他实用程序在stdout上转储标记行,因为我的内核中没有logger。tee似乎没有达到这个目的,因为它不接受标记作为输入,但可以重定向整个文本流。如果您知道记录器的任何替代品,请告诉我?2.我的内核没有strace;你知道还有其他方法吗?谢谢。1.总之,这里的应用程序“server\u application”将把stdout上出现的“tag”作为应用程序本身的输入,并相应地运行。因此,我可以使用任何其他实用程序在stdout上转储标记行,因为我的内核中没有logger。tee似乎没有达到这个目的,因为它不接受标记作为输入,但可以重定向整个文本流。如果您知道记录器的任何替代品,请告诉我?2.我的内核没有strace;你知道还有其他方法吗?