TL;DR

首先找到 log 文件的位置:

  • 对于 macOS (arm64),log 文件在 /opt/homebrew/var/log 目录下
  • 对于 macOS (x86_64),log 文件在 /usr/local/homebrew/var/log/ 目录下
  • 对于 Linux,log 文件在 /home/linuxbrew/.linuxbrew/var/log 目录下

查看 log 文件:

$ tail -fn 10 <file>

<file> 改为你要查看的 log 文件

macOS

首先启动服务:

$ brew services start frpc
==> Successfully started `frpc` (label: homebrew.mxcl.frpc)

可以看到这里 Homebrew 在注册 frpc 服务时给了我们一个 label,这个 label 是服务的标识符。

Homebrwe 注册服务时会在启动目录写入相应的配置文件,这个配置文件的名字就是刚刚 Homebrew 给我们的 label

根据我们启动服务时使用的命令的不同,启动目录的位置也会有所不同。

  • 如果你使用不带 sudo 的启动命令,那么配置文件会写入到用户登录自启的启动目录 ~/Library/LaunchAgents
  • 如果你使用带 sudo 的启动命令,那么配置文件会写入到开机自启的启动目录 /Library/LaunchDaemons

刚刚的我们使用的是不带 sudo 的启动命令,因此我们到 ~/Library/LaunchAgents 目录下寻找我们的配置文件:

$ ls ~/Library/LaunchAgents
homebrew.mxcl.frpc.plist

可以看到这里有一个名为 homebrew.mxcl.frpc.plist 的配置文件,它的文件名前缀刚好就是之前 Homebrew 给我们的 label

我们打开这个配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.frpc</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>Background</string>
<string>LoginWindow</string>
<string>StandardIO</string>
<string>System</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/opt/frpc/bin/frpc</string>
<string>-c</string>
<string>/opt/homebrew/etc/frp/frpc.toml</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/opt/homebrew/var/log/frpc.log</string>
<key>StandardOutPath</key>
<string>/opt/homebrew/var/log/frpc.log</string>
</dict>
</plist>

可以看到在文件的底部有两个配置项 StandardErrorPathStandardOutPath,它们的值 /opt/homebrew/var/log/frpc.log 就是我们要找的 log 文件的位置。

我们可以通过下面的命令来查看 log 文件:

$ tail -fn 10 /opt/homebrew/var/log/frpc.log

这将跟踪显示 log 文件中的最后 10 条内容。

Linux

首先,使用 Homebrew 启动服务时你会看到一条类似如下的信息:

$ brew services start frps
Created symlink /home/user/.config/systemd/user/default.target.wants/homebrew.frps.service → /home/user/.config/systemd/user/homebrew.frps.service.
==> Successfully started `frps` (label: homebrew.frps)

这表示 Homebrew 在 /home/user/.config/systemd/user/default.target.wants 目录下为一个名为 homebrew.frps.service 的服务单元文件创建了一个符号链接,使其能够在 default.target 达成时启动(即用户登录时)。

我们查看服务单元文件 homebrew.frps.service 的内容:

[Unit]
Description=Homebrew generated unit for frps [Install]
WantedBy=default.target [Service]
Type=simple
ExecStart=/home/linuxbrew/.linuxbrew/opt/frps/bin/frps -c /home/linuxbrew/.linuxbrew/etc/frp/frps.toml
Restart=always
StandardOutput=append:/home/linuxbrew/.linuxbrew/var/log/frps.log
StandardError=append:/home/linuxbrew/.linuxbrew/var/log/frps.log

可以看到在文件的底部有两个配置项 StandardOutputStandardError,它们的值 /home/linuxbrew/.linuxbrew/var/log/frps.log 就是我们要找的 log 文件的位置。

我们可以通过下面的命令来查看 log 文件:

$ tail -fn 10 /home/linuxbrew/.linuxbrew/var/log/frps.log

这将跟踪显示 log 文件中的最后 10 条内容。

查看 Homebrew 管理的服务的日志的更多相关文章

  1. 用kubeadm 搭建 高可用集群问题记录和复盘整个过程 - 通过journalctl -u kubelet.service命令来查看kubelet服务的日志

    1.根据  https://github.com/cookeem/kubeadm-ha/blob/master/README_CN.md  去搭建ha集群,遇到几个问题: runtime networ ...

  2. 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全

    日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下: ...

  3. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  4. 2016-11-05实战-定义ssh服务的日志

    1.编辑/etc/rsyslog.conf 输入 local 0 .*     /var/log/sshd.log   #日志的保存路径 2.定义ssh服务的日志级别 编辑sshd服务的主配置文件:/ ...

  5. 玩转Windows服务系列——命令行管理Windows服务

    说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令,命令行都是非常方便以及强大的工具. 接下来就看一下如何通过cmd命 ...

  6. WCF 项目应用连载[3] - 双向通信 实例管理与服务端监控

    WCF 项目应用连载[1] - 索引 - 轻量级的Log系统 - Lig Sample -序 第二节我们已经创建了Lig项目,并且能稳定工作了.现在我们来改进ILigAgent接口,实现WCF的双向通 ...

  7. 玩转Windows服务系列——命令行管理Windows服务

    原文:玩转Windows服务系列——命令行管理Windows服务 说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令, ...

  8. centOS 6 服务管理与服务脚本

    服务管理与服务脚本   linux服务 服务管理与服务脚本 linux服务 服务启动过程详解 chkconfig命令 非独立服务与xinetd进程 一个特殊的服务脚本   服务启动过程详解 在开机启动 ...

  9. fitnesse - 用例创建编辑、管理、执行和日志

    fitnesse - 用例创建编辑.管理.执行和日志 2017-10-09 目录 1 用例创建编辑  1.1 用例创建  1.2 用例编辑2 用例管理3 用例测试执行和日志  3.1 用例测试执行  ...

  10. 监控与管理dubbo服务

    Dubbo是阿里多年前开源的一套服务治理框架,在众多互联网企业里应用广泛.本文介绍了一些如何监控与管理dubbo服务.使用的工具与<dubbox 的各种管理和监管>大致相同,本文更侧重于命 ...

随机推荐

  1. mysql查看用户的过期时间

    1. mysql查看用户的过期时间的方法 在MySQL中,用户的过期时间(也称为账户过期日期)是一个可选项,用于确定某个MySQL用户账户何时到期.但是,值得注意的是,并非所有的MySQL安装或版本都 ...

  2. 卷积神经网络中nn.Conv2d()和nn.MaxPool2d()以及卷积神经网络实现minist数据集分类

    卷积神经网络中nn.Conv2d()和nn.MaxPool2d() 卷积神经网络之Pythorch实现: nn.Conv2d()就是PyTorch中的卷积模块 参数列表 参数 作用 in_channe ...

  3. PromQL全方位解读:监控与性能分析的关键技术

    本文全面探索PromQL,从基础语法到高级操作,详细介绍了数据聚合.时间序列分析及内置函数应用,旨在提升用户构建复杂监控策略和性能分析的能力. 关注[TechLeadCloud],分享互联网架构.云服 ...

  4. 【Python】Pandas操作Excel

    一:Pandas操作Excel 1.1: 创建/读取excel文件 读取excel pd.read_excel(filepath) 读取指定标题行 pd.read_excel(filepath,hea ...

  5. 写给rust初学者的教程(三):闭包、智能指针、并发工具

    这系列RUST教程一共三篇.这是最后一篇,介绍RUST语言的进阶概念.主要有闭包.智能指针.并发工具. 上一篇:写给rust初学者的教程(二):所有权.生存期 closure "闭包&quo ...

  6. CF1864F 题解

    写了一小时结果被卡常了(笑. 考虑新加入一个数什么时候会产生贡献,或者什么时候不会产生贡献. 发现当一个数的位置与他前一次出现时的位置所构成的区间内假若有一个比它小的数那么就不得不对这个数新进行一次操 ...

  7. Golang channel底层是如何实现的?(深度好文)

    Hi 你好,我是k哥.大厂搬砖6年的后端程序员. 我们知道,Go语言为了方便使用者,提供了简单.安全的协程数据同步和通信机制,channel.那我们知道channel底层是如何实现的吗?今天k哥就来聊 ...

  8. Java int/int 保留2位小数

    @Test public void txfloat() { // TODO 自动生成的方法存根 int a=9; int b=7; DecimalFormat df=new DecimalFormat ...

  9. 记一次Redis实施故障

    服务在测试环境运行没问题,部署到生产环境,连redis时报下面的错误: [2022-11-04 00:00:09][org.springframework.scheduling.support.Tas ...

  10. C#:SqlSugar中时间戳(TimeStamp)的使用

    1.数据库建表 CREATE TABLE dbo.Test ( tId INT IDENTITY NOT NULL , tName NVARCHAR (20) NOT NULL , tSalary D ...