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 文件的实际路径。StandardOutPathStandardErrorPath 是日志文件的路径,您也可以根据需要更改这些路径。

2. 加载和启动服务

保存 plist 文件后,您需要使用 launchctl 加载并启动服务。打开终端,然后执行以下命令:
这将加载并启动服务。如果您想要服务在每次启动时自动运行,这一步是必需的。

3. 验证服务运行

要验证服务是否正常运行,可以使用以下命令:
这应该会显示有关您的服务的信息。

4. 停止和卸载服务

如果需要停止服务,可以使用以下命令:
这将停止服务并卸载它。如果以后您想再次启动它,只需重新加载它即可。

注意事项

  • 确保您正确设置了 Fava 的路径和 Beancount 文件的路径。
    • Fava的路径,如果您是在特定的 Python 环境中安装的 Fava,比如一个 virtualenv,确保您已经激活了那个环境,然后再运行 which fava 命令。
  • 日志文件的路径(StandardOutPathStandardErrorPath)可以帮助您调试服务启动过程中的问题。
  • 您可能需要根据 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 文件的实际路径。
  • 在后台运行的服务可能难以管理,尤其是如果忘记了它们正在运行。
  • 如果您计划长期在后台运行服务,考虑使用更高级的解决方案,如设置为系统服务或使用容器化工具。
Mac OS提示XXX已损坏,无法打开解决办法推荐一个小众记账软件beancount
Loading...