首页>行业 > 热点 >
Ubuntu下如何查看service服务中指定程序的printf输出信息 环球播报 2023-06-21 17:24:56  来源:个人图书馆-新潮技术研究社

如果您的服务程序是在后台运行的(即以守护进程方式运行),则无法直接查看其 `printf` 输出。此时,您可以将输出写入日志文件,然后在后台查看该文件。


(资料图片仅供参考)

在服务程序中,您可以使用 `fprintf` 函数将输出写入日志文件。例如,以下代码将输出写入名为 `my_service.log` 的文件中:

```c

FILE *fp = fopen("/path/to/my_service.log", "a");

fprintf(fp, "Output message\n");

fclose(fp);

```

在后台查看日志文件时,可以使用 `tail` 命令,该命令可以实时显示文件的最新内容。例如,以下命令将显示 `my_service.log` 文件的最新100行:

```

tail -n 100 /path/to/my_service.log

```

另外,如果您使用的是 `systemd` 系统服务管理器,您可以使用以下命令查看服务的输出:

```

sudo journalctl -u my_service

```

这将显示名为 `my_service` 的服务的日志输出。如果您只想查看最新的10行日志输出,可以使用以下命令:

```

sudo journalctl -u my_service -n 10

```

请注意,`systemd` 只记录服务的标准输出(即使用 `printf` 输出的内容),而不记录标准错误输出。如果您的服务程序将输出写入标准错误输出流(`stderr`),则需要将其重定向到标准输出流(`stdout`)中。例如:

```c

fprintf(stdout, "Output message\n");

fflush(stdout);

```

这将将输出写入标准输出流,并使用 `fflush` 函数立即将其刷新到磁盘。

关键词:

相关阅读:
热点
图片