我有这样一个场景,我想使用capistrano来部署我的rails应用程序:
。
现在,当我需要进行部署时,我需要将文件安装在/home/webuser/railsapps/helloworld下,然后需要cap重新启动瘦文件。我希望保留所有由润湿器拥有的文件,因此cap主用户正在以webuser的形式运行。现在,当我想重新启动瘦守护进程时会出现问题,因为webuser不能这样做。
我在想,是否可以调用两个单独的会话--用于文件部署的webuser,以及重新启动守护进程的特殊sudoer。有人能给我一个示例脚本吗?
发布于 2008-10-01 10:11:01
这可能不是您想要的,但实际上您可以在sudoers文件中这样做:
someuser ALL=NOPASSWD: /etc/init.d/apache2允许某个用户运行/etc/init.d/apache2
如果你想做别的事:
$ sudo ls
[sudo] password for someuser:
Sorry, user someuser is not allowed to execute '/bin/ls' as root on ...发布于 2008-10-12 00:15:42
为什么不使用sudo作为部署例程,然后在RAILS_ROOT上使用chown -R?您可以告诉Capistrano在将发行版混叠为当前版本之前更改所有权。
发布于 2009-07-19 03:06:27
如果你像润湿器一样跑得稀薄,那么润湿器能不能结束这个过程?您可以在没有守护进程的情况下再次重新启动Thin,只要您将/etc/thin中的所有内容都传递给服务器,就可以了。据我所知,守护进程只是一种方便的方式,可以避免在引导时手动启动程序。
只有当您必须编辑/etc/thin的内容时,您才会陷入困境。假设您对润湿器的thin.yml位使用别名,这种情况只有在您想要添加/删除程序时才会发生。当发生这种情况时,只需手动添加/删除别名就可以了。
这都是假设润湿器可以结束薄薄的过程。否则我就不知道了。上一次,这对我来说是个问题,当时我没有办法在本地机器上运行这个应用程序,因为它的实现与服务器的布局有很大关系。每次编辑某些内容时,我都必须将其发送到SVN,将终端中的选项卡切换到ssh shell,从SVN中提取它,切换到另一个ssh,然后重新启动守护进程,看看是否已损坏它。它让我失望了,所以我在本地安装了瘦文件,让应用程序读取配置文件,现在我只需要每隔几天上传一次。
https://stackoverflow.com/questions/156941
复制相似问题