首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由capistrano部署后的Exec systemctl

由capistrano部署后的Exec systemctl
EN

Stack Overflow用户
提问于 2022-01-08 13:19:26
回答 1查看 83关注 0票数 0

我想在Nginx-unit部署后重新启动Capistrano

代码语言:javascript
复制
namespace :deploy do
    desc 'Collec Static Files'
    task :collectImg do
        on roles(:app) do
            execute "sudo systemctl restart unit"
        end
    end
    after :publishing, :collectImg
end

在上面的代码之后,会出现这样的错误日志。

在部署脚本中是否有使用systemctl的好方法?

代码语言:javascript
复制
DEBUG [08ce969a] Command: sudo systemctl restart unit

DEBUG [08ce969a]    sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
EN

回答 1

Stack Overflow用户

发布于 2022-02-08 16:16:55

首先-伟大的你是使用NGINX单位与卡皮斯特拉诺!

这个问题一次涉及几个问题。

1.启用tty模式

将其添加到部署配置deploy.rb中。卡斯特拉诺3号。

代码语言:javascript
复制
set :pty, true

关于帕蒂的更多信息

2.修改App Server上的sudoers文件

您必须允许部署用户执行sudo命令,而不需要输入密码。您可以/应该将此功能限制在特定资源上。我添加了restartstatus作为示例。

代码语言:javascript
复制
deploy ALL=NOPASSWD:/bin/systemctl restart unit.serivce, /bin/systemctl status unit.serivce

作为参考,请参阅卡皮斯特拉诺

我想在我们的Community频道上谈谈您的capistrano配置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70632703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档