type
status
date
slug
summary
tags
category
icon
password
最近使用了Beancount来记账,很好用,Fava是用来查看Beancount账本的Web界面,每次使用时,都要打开终端运行 fava xxx.bean 这条命令,再打开浏览器输入fava的访问地址,很麻烦。今天在ChatGpt的帮助下,一步步将fava设置成了macos的系统服务,开机即自动运行,同时将fava的web页面通过safari浏览器直接放到任务栏,现在使用起来非常方便。
以下内容都是直接从ChatGPT复制来的:
将 Fava 设置为 macOS 系统服务涉及创建一个
launchd 任务。launchd 是 macOS 用于管理守护进程、应用程序代理和系统代理的工具。下面是创建一个基本 launchd 任务以运行 Fava 的步骤:1. 创建一个 plist 文件
首先,您需要创建一个名为
com.yourusername.fava.plist 的 XML 属性列表(plist)文件,这个文件将定义您的服务。文件名可以根据您的喜好自定义,但通常以 com.yourusername (我改成了com.lf.fava.plist)开头。这个文件应该保存在 ~/Library/LaunchAgents/ 目录下。以下是一个基本的 plist 文件示例:
在这个例子中,
ProgramArguments 包含了运行 Fava 的命令及其参数。确保替换 /Users/lifei/Documents/BeanFolder/main.bean 为您的 Beancount 文件的实际路径。StandardOutPath 和 StandardErrorPath 是日志文件的路径,您也可以根据需要更改这些路径。2. 加载和启动服务
保存 plist 文件后,您需要使用
launchctl 加载并启动服务。打开终端,然后执行以下命令:这将加载并启动服务。如果您想要服务在每次启动时自动运行,这一步是必需的。
3. 验证服务运行
要验证服务是否正常运行,可以使用以下命令:
这应该会显示有关您的服务的信息。
4. 停止和卸载服务
如果需要停止服务,可以使用以下命令:
这将停止服务并卸载它。如果以后您想再次启动它,只需重新加载它即可。
注意事项
- 确保您正确设置了 Fava 的路径和 Beancount 文件的路径。
- Fava的路径,如果您是在特定的 Python 环境中安装的 Fava,比如一个 virtualenv,确保您已经激活了那个环境,然后再运行
which fava命令。
- 日志文件的路径(
StandardOutPath和StandardErrorPath)可以帮助您调试服务启动过程中的问题。
- 您可能需要根据 Fava 的安装方式和您的系统配置调整 plist 文件中的路径和设置。
- 这些指令假设您已经在您的系统上安装了 Fava。如果尚未安装,请先按照 Fava 的官方安装指南进行安装。
附:其他几种临时后台运行程序的方法:
在macOS上运行Fava(一种用于查看Beancount账本的Web界面)时,如果希望即使关闭终端窗口,Fava也能继续在后台运行,您可以使用几种方法。以下是一些常见的解决方案:
1. 使用 nohup
nohup 命令可以使程序忽略挂起信号,从而在您退出终端时程序仍然运行。这将启动 Fava 并将其放在后台运行。
nohup 生成的输出默认会被写入 nohup.out 文件。2. 使用 screen
screen 是一个强大的终端工具,它可以让您运行多个终端会话,并且即使断开连接也能继续运行。首先,安装
screen(如果尚未安装):然后,开始一个新的
screen 会话:在新的会话中启动 Fava:
之后,您可以按
Ctrl-A 然后 D 断开与 screen 会话的连接。Fava 将继续在 screen 会话中运行。要重新连接到会话,使用:
3. 使用 tmux
tmux 是另一个可以创建多个终端会话的工具,并且在断开连接后仍可继续运行程序。首先,安装
tmux(如果尚未安装):开始一个新的
tmux 会话:在新会话中启动 Fava:
要断开
tmux 会话,按 Ctrl-B 然后按 D。要重新连接到会话,使用:注意事项
- 确保您替换命令中的
your_beancount_file.bean为您的 Beancount 文件的实际路径。
- 在后台运行的服务可能难以管理,尤其是如果忘记了它们正在运行。
- 如果您计划长期在后台运行服务,考虑使用更高级的解决方案,如设置为系统服务或使用容器化工具。
- 作者:Felix
- 链接:https://blog.7zi.top//article/macos-fava-service
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。