使用 Systemd 管理 TTRSS 更新进程
话说以前自己 TTRSS 的后台更新是靠 screen 或者 tmux ,虽然感觉麻烦,但是 it works
,不过换到 16.04 后,不知道为何更新进程老是挂掉,看了下似乎是内存不足的问题,明明 14.04 的时候完全没啥问题。
看了下 TTRSS 的 wiki ,更新方法都写的很清楚了: UpdatingFeeds
其中使用 Systemd 的应该是很方便,以前没看过这方面的内容,今天就看了看。
更新 TTRSS 的话,直接复制 wiki 的内容就可以了。在 /etc/systemd/system/
文件夹下创建一个 ttrss.service
文件,填入下面的内容:
1 | [Unit] |
- 查看输出:
journalctl -u ttrss
- 开机启动:
sudo systemctl enable/disable ttrss
About Systemd
相关的路径:
/etc/systemd/system/*
- 供系统管理员和用户使用/run/systemd/system/*
- 运行时配置文件/usr/lib/systemd/system/*
- 安装程序使用
基本命令:
- 显示状态:
systemctl status
- 显示激活的单元:
systemctl / systemctl list-units
- 控制与状态相关:
systemctl start/stop/reload/status <单元>
- 开机启动相关:
systemctl is-enabled/enable/disable <单元>
- 禁用与恢复:
systemctl mask/unmask <单元>
- 显示帮助:
systemctl help <单元>
- 重载 Systemd:
systemctl daemon-reload
单元文件内容:
如前文 ttrss 的示例:
1 | [Unit] |
[Unit]
- 记录unit文件的通用信息
Description
: 描述内容Requires
: 依赖的服务,若选择单元未启动,则本单元启动失败Wants
: 依赖的服务,但选择单元未启动,对本单元无影响After
/Before
: 定义启动顺序
[Service]
- 记录 Service 的信息
Type
: 服务启动方式User
/Group
: 用户/用户组ExecStart
: 启动时执行的命令ExecStartPre
,ExecStartPost
: ExecStart执行前后所调用的命令。ExecStop
: 定义停止服务时所执行的命令,定义服务退出前所做的处理。如果没有指定,使用systemctl stop xxx命令时,服务将立即被终结而不做处理。Restart
: 定义服务何种情况下重启(启动失败,启动超时,进程被终结)。可选选项:no, on-success, on-failure,on-watchdog, on-abort
[Install]
- 安装信息
WantedBy
: 何种情况下,服务被启用。WantedBy=multi-user.target
(多用户环境下启用)Alias
: 别名
参考链接: