我已经使用 git 克隆了 odoo ERP,位于目录 /home/amr/erp/odoo 中。当然,我已经创建了一个虚拟环境,并在 /usr/local/etc/rc.d 中创建了一个启动脚本“odoo”,我关心的是不要以 root 用户身份运行 rc 脚本,所以我创建了一个非登录用户通过以下命令:
pw adduser odoo -d /nonexistent -s /usr/sbin/nologin -c "Odoo ERP"
我的问题是,当我使用“odoo”用户运行应用程序时,它会失败,但是当我使用“amr”用户运行它时,它会启动。那么我如何让应用程序以“odoo”用户运行,这里是我的 rc 脚本:
#!/bin/sh
#
# PROVIDE: odoo
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
. /etc/rc.subr
name="odoo"
user="odoo"
rcvar="odoo_enable"
odoo_command="/home/amr/erp/odoo/.venv/bin/python /home/amr/erp/odoo/odoo-bin -c /home/amr/erp/odoo/odoo.conf --without-demo=all"
pidfile="/var/run/${name}.pid"
command="/usr/sbin/daemon"
command_args="-P ${pidfile} -u ${user} -r -f ${odoo_command}"
load_rc_config "${name}"
: "${odoo_enable:=no}"
run_rc_command "$1"
答案1
cd /home/amr
chown -r odoo:odoo erp
然后重启服务