Para empezar, hay toda una historia y una lucha entre ir de SysVInita SystemD. Sin embargo, en lugar de tratar de desglosar todo esto en una respuesta, lo referiré a algunas empresas de Google para obtener más detalles sobre la historia, así como un artículo en particular sobre el tema:
http://www.tecmint.com/systemd-replaces-init-in-linux/
En resumen, sin embargo, ha sido una transición lenta y ardua. Algunas características heredadas se mantuvieron intactas (como init.dhasta cierto punto). Si tiene la opción de usar systemctlpara el control de su servicio, le recomiendo usar esa. Es el futuro previsible para Linux y, finalmente, los SysVInitmétodos más antiguos se considerarán obsoletos por completo y se eliminarán.
Para cubrir cada uno que enumeró específicamente:
sudo systemctl status apache2.service
Este es el nuevo SystemDenfoque para el manejo de servicios. En el futuro, las aplicaciones en Linux están diseñadas para usar el método systemd, no cualquier otro.
sudo /bin/systemctl status apache2.service
Esto es lo mismo que el comando anterior. La única diferencia en este caso es que no depende de la $PATHvariable de entorno del shell encontrar el comando, sino que enumera el comando explícitamente al incluir la ruta al comando.
sudo /etc/init.d/apache2 status
Este es el SysVInitmétodo original de llamar a un servicio. Los scripts de inicio se escribirían para un servicio y se colocarían en este directorio. Si bien este método todavía es utilizado por muchos, servicefue el comando que reemplazó este método de invocar servicios SysVInit. Hay algunas funcionalidades heredadas para esto en los sistemas SystemDmás nuevos, pero la mayoría de los programas más nuevos no incluyen esto, y no todos los scripts de inicio de aplicaciones más antiguos funcionan con él.
sudo service apache2 status
Esta fue la herramienta principal utilizada en los SysVInitsistemas de servicios. En algunos casos simplemente se vinculó a los /etc/init.d/scripts, pero en otros casos fue a un script de inicio almacenado en otro lugar. Estaba destinado a proporcionar una transición más fluida en el manejo de la dependencia del servicio.
Por último, menciona que desea saber cómo obtener más información de los comandos, ya que algunos proporcionan más información que otros. Esto casi siempre está determinado por la aplicación y cómo diseñaron su archivo de inicio o servicio. Sin embargo, como regla general, si se completó en silencio, tuvo éxito. Sin embargo, para verificar a start, stopo restart, puede usar el statussubcomando para ver cómo está funcionando. Usted mencionó que un statuscomando es incorrecto en un script de inicio antiguo. Ese es un error que los desarrolladores de aplicaciones tendrían que mirar. Sin embargo, dado que los scripts de inicio se están convirtiendo en el método obsoleto de manejo de servicios, pueden ignorar el error hasta que eliminen por completo la opción de script de inicio. lossystemctl status siempre debe funcionar correctamente; de lo contrario, se debe registrar un error con los desarrolladores de la aplicación.
systemctles la sintaxis preferida yservicese proporciona como compatibilidad con versiones anteriores./etc/init.d/pure-ftpdo similar están llamando a los scripts de inicio / detención directamente.