The apachectl script can operate in
two modes. First, it can act as a
simple front-end to the httpd command
that simply sets any necessary
environment variables and then invokes
httpd, passing through any command
line arguments. Second, apachectl can
act as a SysV init script, taking
simple one-word arguments like start,
restart, and stop, and translating
them into appropriate signals to
You CAN use apachectl through a simple bash script, to simply wrap the calls. I.e., /etc/init.d/httpd has a start command that calls
apachectl start, etc..
HOWEVER, most Linux distributions provide their own init script, /etc/init.d/httpd (or similar), that uses the SysV macros such as daemon, killproc, etc.. So basically, they do the same thing, but are provided/maintained by different groups. In general, I personally prefer the init script simply because its more in line with the rest of the daemons on my system.
Hope this clarifies things for you!