2023-05-25 14:37:16
2023-01-26 12:14:47
2023-01-26 12:14:47
91361
friendica 配置守护进程以及通过systemd管理
friendica非常依赖worker进程来完成跟其他实例通讯,清理数据库,联系人同步等其他任务。
它可以通过cron计划任务定时工作,也可以通过守护进程进行完成。设置好守护进程可以立即发送任务,而不是等几分钟cron计划任务开始工作。
假设,系统是Ubuntu20.04 friendica的安装目录是
按照官方提供的教程运行
我们将设置 systemd 以
复制粘贴以下文件
保存退出,这就systemd 可以通过www-data 用户组操作/run/friendica 的文件了。
如果现在执行
你会看到类似 信息
如果不是,您可能在
如果没有问题现在可以创建systemd文件了。
复制粘贴以下文件
请注意,如果您使用的是MySQL 那第二行改成
还有注意检查 WorkingDirectory 这是你安装friendica的目录。
确认没有问题后重新加载systemd配置
然后可以通过systemd启动守护进程了
检查状态
开机自动启动
搞定!
friendica非常依赖worker进程来完成跟其他实例通讯,清理数据库,联系人同步等其他任务。
它可以通过cron计划任务定时工作,也可以通过守护进程进行完成。设置好守护进程可以立即发送任务,而不是等几分钟cron计划任务开始工作。
假设,系统是Ubuntu20.04 friendica的安装目录是
/var/www/fedibar/
按照官方提供的教程运行
cd /var/www/fedibar/ php bin/daemon.php start
时它会在 /run 目录创建一个PID。friendica会使用 config/local.config.php
文件system 下的pidfile目录配置。'system' > [
...
'pidfile' => '/run/friendica/daemon.pid',
...
],
我们将设置 systemd 以
www-data
用户身份运行该进程。但是只有root权在该/run
目录中。所以我们创建一个 Friendica 指定的拥有www-data
的子目录。当然可以手动创建,但是重启就消失。因此我们通过/etc/tmpfiles.d
中的配置文件来执行此操作。首先通过命令在该目录创建 friendica.confsudo nano /etc/tmpfiles.d/friendica.conf
复制粘贴以下文件
d /run/friendica 0755 www-data www-data -
保存退出,这就systemd 可以通过www-data 用户组操作/run/friendica 的文件了。
如果现在执行
cd /var/www/fedibar/ php bin/daemon.php start
你会看到类似 信息
Starting worker daemon.
Child process started with pid 1276.
如果不是,您可能在
config/local.config.php
文件的 pidfile 目录填写错误了。如果没有问题现在可以创建systemd文件了。
sudo nano /etc/systemd/system/friendica-daemon.service
复制粘贴以下文件
[Unit]
Description=Friendica daemon
After=network.target mariadb.service
Requires=network.target remote-fs.target nss-lookup.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/fedibar
Type=simple
StandardOutput=null
StandardError=syslog
ExecStart=/usr/bin/php ./bin/daemon.php start
ExecStop=/usr/bin/php ./bin/daemon.php stop
PIDFile=friendica/daemon.pid
PrivateTmp=true
InaccessibleDirectories=/home /root /boot /opt /mnt /media
ReadOnlyDirectories=/etc /usr
Restart=always
[Install]
WantedBy=multi-user.target
请注意,如果您使用的是MySQL 那第二行改成
After=network.target mysql.service
还有注意检查 WorkingDirectory 这是你安装friendica的目录。
确认没有问题后重新加载systemd配置
sudo systemctl daemon-reload
然后可以通过systemd启动守护进程了
sudo systemctl start friendica-daemon.service
检查状态
systemctl status friendica-daemon.service
开机自动启动
systemctl enable friendica-daemon.service
搞定!
点赞了
柳叶白菀点赞了
转发了
Pen² L 和 Dâng David转发了
Pen² L
回复error • • •error
回复Pen² L • •越青
回复Pen² L • • •Pen² L
回复越青 • • •Dâng David点赞了
error
回复Pen² L • •