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. 一个用来画拉氏图的简单Python脚本

    技术背景 关于拉氏图的更多介绍,可以参考下这篇博客,这里简单引述一部分内容: Ramachandran plot(拉氏图)是由G. N. Ramachandran等人于1963年开发的,用来描述蛋白质 ...

  2. Nunjucks

    Nunjucks是什么东东?其实它是一个模板引擎. 那什么是模板引擎? 模板引擎就是基于模板配合数据构造出字符串输出的一个组件.比如下面的函数就是一个模板引擎: function examResult ...

  3. 新版SpringBoot-Spring-Mybatis事务控制

    快速创建SpringBoot+Spring+Mybatis项目 https://start.spring.io 删除pom中mysql依赖的runtime pom.xml中添加druid依赖 < ...

  4. Python潮流周刊的优惠券和精美电子书(EPUB、PDF、Markdown)

    Python潮流周刊从 2023.05.13 连载至今,本周即将发布第 60 期,这意味着我们又要达成一个小小的里程碑啦! 每周坚持做分享,周复一周,这对自己的精力和意志是一项不小的挑战.于是,为了让 ...

  5. 固定panel1,panel2适应窗体变化

    固定panel1,panel2适应窗体变化 如果您想要固定 Panel1 并且让 Panel2 适应窗体大小的变化,可以使用以下方式设置 SplitContainer 的属性:   ' 设置 Spli ...

  6. 使用.NET6实现动态API

    ApiLite是基于.NET6直接将Service层生成动态api路由,可以不用添加Controller,支持模块插件化,在项目开发中能够提高工作效率,降低代码量. 开发环境 .NET SDK 6.0 ...

  7. Hack The Box

    Hack The Box 地址 https://www.hackthebox.com/ HACKTHEBOX 是一个网络安全实战平台,提供了各种 靶机 和 实验室,同时也是一个庞大的 黑客社区 怎么注 ...

  8. 学习 React 需要具备的 JavaScript 知识

    学习 React 需要具备的 JavaScript 知识 为什么要学习 React? React 可以与任何其他库或框架无缝集成,因为 React 是一个仅视图库(它是 Model View C on ...

  9. 如何用 WinDbg 调试Linux上的 .NET程序

    一:背景 1. 讲故事 最新版本 1.2402.24001.0 的WinDbg真的让人很兴奋,可以将自己伪装成 GDB 来和远程的 GDBServer 打通来实现对 Linux 上 .NET程序进行调 ...

  10. 把python中的列表转化为字符串

    怎么把python中的列表转换为字符串: 1,列表中非字符串的元素的转换 方法一: 使用列表推导式进行转换 1 list=['hello',6,9,'beizhi'] 2 list=[str(i) f ...