Comment démarrer le serveur Apache automatiquement?

2

Je veux installer manuellement le serveur Apache. Je l'ai compilé dans:

/server/apache

http.conf configuré correctement. Ça marche. Je peux ouvrir un navigateur et naviguer jusqu'à localhost et voir le message "Ça marche".

Mais comment peut-on ajouter apache au démarrage d’Ubuntu afin que je n’aie pas à le faire:

sudo /server/apache/bin/apachectl start

tout le temps?

Quelqu'un peut-il expliquer comment ajouter des programmes au démarrage d'Ubuntu (10.10 64 bits)?

RÉSOLUTION

J'ai beaucoup appris. Il semble y avoir 2 façons de le faire:

1) Manières historiques: la plupart des distributions Unix / Linix ont historiquement suivi le schéma d’initialisation System.V. De cette façon, tout ce que vous avez à faire est d’écrire un script spécial démarrage / arrêt / redémarrage, chmod + x it et de le placer dans le répertoire /etc/init.d. Ensuite, vous exécutez la commande update-rc.d qui crée des liens sous différents niveaux d'exécution. et c'est comme ça que ça marche. la la la

2) Nouvelle façon. De nombreuses distributions Linux qui passent actuellement de l'ancien système basé sur le niveau d'exécution à l'initialisation basée sur les événements. Dans mon cas, Ubuntu (également RHEL 6.0 et Fedora) utilise un système appelé Upstart qui remplacera éventuellement complètement la version de systemV. il utilise le dossier / etc / init. Tout ce que vous avez à faire est de créer un script, chmod + x it et de le placer dans / etc / init dir. Informations de démarrage

Stann
la source
Y at-il un non inclus dans votre src, d'où vous l'avez compilé?
Arenstar
Y a-t-il une raison pour laquelle vous utilisez une version personnalisée? À moins d'une raison spécifique, il est déconseillé d'utiliser la version fournie.
Andrew M.
1
Vous devriez vraiment regarder la norme de hiérarchie du système de fichiers . /serverest un endroit incroyablement discutable pour mettre des binaires.
Jgoldschrafe
je suis nouveau sur linux. Je pense que la meilleure façon d'apprendre est d'essayer des trucs. Vrai - on peut utiliser yum ou apt-get pour faire avancer les choses rapidement. mais de cette façon, vous ne savez pas ce qui se passe derrière la scène. Quant au répertoire / server - ouais - ce n'était pas le bon endroit. Après avoir examiné la norme de la hiérarchie Linux, il semble que vous feriez mieux de placer vos fichiers binaires dans / opt ou / usr / local - pas vrai?
Stann
À moins que le processus de compilation ne vous intéresse, je dirais que vous feriez mieux de vous en tenir aux paquets. Ils sont fournis pour une raison - et en contournant les packages, vous allez encombrer encore plus votre système. Par exemple, la réponse fournie fonctionne, mais va être impossible à maintenir. Gardez cela à l'esprit.
Andrew M.

Réponses:

4

Le plus simple serait de mettre:

/server/apache/bin/apachectl start

dans "/etc/rc.local". La meilleure façon de le faire serait de créer un script upstart /etc/init/apache.conf. Je pense que les valeurs correctes ressemblent à quelque chose comme:

start on runlevel [2345]
stop on runlevel [!2345]
expect daemon
exec /server/apache/bin/apachectl start
pre-stop exec /server/apache/bin/apachectl stop

Puis lancez "initctl start apache" pour le démarrer et "initctl stop apache" pour l'arrêter. Pour plus d'informations sur les fichiers de configuration reçus, comme ci-dessus, voir "man 5 init".

Sean Reifschneider
la source
agréable. c'est ce qui a fonctionné pour moi ....
Stann
0
sudo update-rc.d httpd defaults

Cela utilisera les niveaux d'exécution par défaut fournis par le script, ce qui inclut le démarrage et l'arrêt. update-rc.d est le standard pour manipuler des services sur des systèmes basés sur Debian. Bonne chance!

Andrew

Andrew M.
la source
update-rc.d requiert que le script d'initialisation existe déjà, y compris les méta-informations qui y ont été formatées pour update-rc.d, ce que le demandeur de la question n'a pas car il n'utilise pas l'installation fournie.
Sean Reifschneider
Vous avez absolument raison; J'ai glacé sur le fait que le PO compilait sa propre version.
Andrew M.
Je me demandais à ce sujet .... :)
Stann