| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Are you your service is working fine? I tried your service file and it didn't work. I'm currently investigating. |
Sorry, something went wrong.
|
@pothibo did you get it working? If you got a working config, I'll integrate it into Thin. |
Sorry, something went wrong.
|
Sorry I forgot about it. The issue with systemd and ruby is that there are tools like rvm, rbenv and such that handles ruby version. This is what was going on with my system. I'm not sure what the best approach would be. Maybe you can give me some idea? Right now, here's the service I'm using. [Unit]
Description=lamarmite.ca Thin instance
After=syslog.target network.target
[Service]
Type=simple
User=marmite
Group=http
Environment="PATH=/usr/local/share/npm/bin:/opt/rubies/ruby-2.0.0-p247/bin:$PATH"
WorkingDirectory=/home/marmite/
ExecStart=/home/marmite/.gem/ruby/2.0.0/bin/thin start --ssl -R /srv/http/marmite.ca/config.ru -e production
[Install]
WantedBy=multi-user.target |
Sorry, something went wrong.
|
I would prefer starting thin in userspace, e.g. systemctl enable --user thin-marmite. This will allow running several thin servers on a single machine under different users, and there's no chance a security flaw in Rails or whatever will allow it taking the control over all the machine or even get to other app's data. |
Sorry, something went wrong.
|
@pirj it was my understanding that setting a user & group would run the service as the specified user/group. |
Sorry, something went wrong.
|
I suggest file format strongly depends on how gems are bundled and is rvm installed. gem install bundler PATH=$PATH:/home/app/.gem/ruby/2.0.0/bin bundle install --path ~/.gem The following webapp.service works fine (start, stop, restart): [Unit] Description=Web application server After=network.target [Service] Type=forking User=app PIDFile=/home/app/webapp.pid ExecStart=/home/app/.gem/ruby/2.0.0/bin/thin -d --user app -e production --chdir /home/app/app --socket /home/app/webapp.sock --pid /home/app/webapp.pid --log /home/app/log/webapp.log start ExecReload=/bin/kill -HUP $MAINPID ExecStop=/bin/kill -QUIT $MAINPID [Install] WantedBy=multi-user.target If I set Type=simple, it just doesn't start. Should it listen to unix socket or port by default? Can we do both? Or is it a good idea to insist on socket usage? |
Sorry, something went wrong.
|
Honestly, I have no idea, I meant to submit a PR here for a long time, but there's two things that are bothering me. ExecStart needs to include absolute path. Maybe it should try to find the correct paths and ask for the user for a confirmation? I guess @macournoyer would be better positionned to answer those questions though. |
Sorry, something went wrong.
|
@pothibo If you're using with rvm, rather than handling with 'thin install', you should follow this guide - http://rvm.io/deployment . |
Sorry, something went wrong.
|
FYI this systemd service works perfectly for me: [Unit] Description=A fast and very simple Ruby web server After=syslog.target network.target [Service] Type=forking User=www-data Group=www-data ExecStart=/usr/local/bin/thin start --all /etc/thin/ ExecReload=/user/local/bin/thin restart --all /etc/thin/ ExecStop=/usr/local/bin/thin stop --all /etc/thin TimeoutSec=300 [Install] WantedBy=multi-user.target |
Sorry, something went wrong.
|
hi, any news about this? |
Sorry, something went wrong.
|
Can you please rebase this on master. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
As discussed on google groups, many modern linux systems have migrated from old SystemVinit to SystemD, which makes our install script outdated
This is the commit that autodetects which one of them is in use and make the change appropriately.
p.s.: I have tried to conform to the existing coding style.