Do the two different syntaxes do the same thing?

$ service apache2 restart

$ /etc/init.d/apache2 restart
link|improve this question

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
feedback

4 Answers

up vote 3 down vote accepted

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

link|improve this answer
feedback

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

--status-all
--full-restart

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

link|improve this answer
feedback

Yes.

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))

link|improve this answer
feedback

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.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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