我希望使用root
在foobar
下启动的Mojolicious::Lite在不同的用户/群组(foobar
/ app->config(
hypnotoad => {
listen => ["http://*:$API_Port"],
user => 'foobar',
group => 'foobar',
proxy => 1,
}
);
下运行例子)。
我正在使用以下配置调用:
root
不幸的是,似乎所有孩子仍然在root
下运行,并且在路线中创建的所有文件也使用0644
和foobar
而不是0664
和{{ 1}}。
hypnotoad的文档似乎相当稀疏,因为到目前为止我可以找到的唯一更改用户/组的参考是github问题:hypnotoad
答案 0 :(得分:3)
cpan模块Mojolicious::Plugin::SetUserGroup似乎解决了这个问题:
# Mojolicious::Lite
plugin SetUserGroup => { user => $user, group => $group };
答案 1 :(得分:1)
我得到了简单的解决方案!只需编辑您的Systemd单元文件并添加两个选项:用户和组...
示例:
[Unit]
Description=My Perl service
Requires=network.target
After=network.target
# put here other service requirements
[Service]
User=testuser1
Group=testuser1
Type=simple
Restart=always
SyslogIdentifier=testperlservice
PIDFile=/home/testuser1/tmp/testperlservice.pid
ExecStart=/usr/local/bin/hypnotoad /home/testuser1/script/test -f
ExecStop=/usr/local/bin/hypnotoad -s /home/testuser1/script/test
ExecReload=/usr/local/bin/hypnotoad /home/testuser1/script/test