Do the two different syntaxes do the same thing?

$ service apache2 restart

$ /etc/init.d/apache2 restart
  • As a side note, the whole "service foo restart" thing annoys me because I don't have tab completion. – cjc Dec 30 '11 at 20:25

Yes. The backward compatible /etc/init.d/ scripts basically run service myservice start/stop/retstart instead of doing anything themselves.


Service is nothing more than a shell script.

cat /sbin/service

At that top you will see it sets the SERVICEDIR to /etc/init.d.

The service script has a few other options such as


That loop over all services. But the name you pass to it is matched to the init.d script.



To be precise:

service  runs  a  System  V  init script in as predictable environment as possible,
removing most environment variables and with current working directory set to /.

(from service(8))


In a way, yes. Actually upstart jobs will give a warning if started with /etc/init.d/ while service command always works both for sys v init scripts as well as upstart jobs.

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.