3

I am trying to automate running Cloud9, by setting it as a service on Debian. This error stops me:

$ sudo service cloud9 start
Failed to start cloud9.service: Unit cloud9.service failed to load: Invalid argument. See system logs and 'systemctl status cloud9.service' for details.

systemctl status cloud9.service output:

$ systemctl status cloud9.service
● cloud9.service - cloud9
   Loaded: error (Reason: Invalid argument)
   Active: inactive (dead)

Probably it is due to misconfiguration in /etc/systemd/system/cloud9.service, which I just created:

[Unit]
Description=cloud9

[Service]
ExecStart=node server.js -w /home/user -l 0.0.0.0 -a admin:admin
Restart=always
User=nobody
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/user/c9sdk

[Install]
WantedBy=multi-user.target

How to create a simple startup script for the service?

6

Your first clue is that the diagnostic said to check the output of systemctl status cloud9.service, but you didn't mention doing that or sharing that output.

Perhaps it will tell you that the path the binary you pass to ExecStart= must be absolute.

| improve this answer | |
  • The details from systemctl are already appended to the question. – Peter Gerhat Oct 12 '16 at 16:42
  • This solved the problem, I used both absolute paths to node.js and the server.js – Peter Gerhat Oct 12 '16 at 16:45
  • I was using ExecStart=~/script.sh, it wont work, and now I used an absolute path and it works. – Salim May 2 '18 at 7:34
1

Generally, the "Invalid argument" here is the unit definition file itself. To debug it you can use:

sudo systemd-analyze verify cloud9.service

or in case of user's local service:

sudo systemd-analyze --user verify cloud9.service

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.