潮声隔雨深 · 2022年01月04日

全志R系列 Tina 如何查看通过 procd init 脚本启动的应用输出到 stdout/stderr 的打印信息?

请问全志R系列 Tina 如何查看通过 procd init 脚本启动的应用输出到 stdout/stderr 的打印信息?

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2022年01月04日
本回答来源全志R系列 Tina 如何查看通过 procd init 脚本启动的应用输出到 stdout/stderr 的打印信息?

一般来说,要获取守护进程的打印,需要通过 syslog 之类记录系统整体日志的方法。procd init 脚本也提供了方法将应用程序的打印重定向到 syslog 中。

下面是一个简单的 procd init 脚本例子,它会启动应用程序 /usr/bin/foobar,但我们默认没法看到 foobar 输出到 stdout/stderr 的打印:

#!/bin/sh /etc/rc.common

START=50

USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/foobar
    procd_close_instance
}

通过增加“procd_set_param stdout 1”和“procd_set_param stderr 1”两个参数,可将其输出到 stdout/stderr 的内容重定向到 syslog:

#!/bin/sh /etc/rc.common

START=50

USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/foobar
    procd_set_param stdout 1    # 将其 stdout 的内容重定向到 syslog
    procd_set_param stderr 1    # 将其 stderr 的内容重定向到 syslog
    procd_close_instance
}

如此设置后,就可以从 syslog 中看到 foobar 应用程序输出的打印。

你的回答
关注数
1
收藏数
0
浏览数
4208
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息