Tutoriales y Manuales
Entradas Mensuales
-
►
2023
(Total:
556
)
- ► septiembre (Total: 65 )
-
▼
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
febrero
(Total:
75
)
-
Lapsus$ filtra un torrent con casi 19GB de informa...
-
Grupo sudamericano Lapsus hackea nVidia y roba 1TB...
-
El ejército de Ucrania pide a los ciudadanos que t...
-
Elon Musk activa servicio internet por satélite co...
-
La restauración de fábrica de Windows 11 deja arc...
-
Google está modificando por primera vez su página ...
-
Algunos SSD NVMe pueden perder datos cuando se va ...
-
Rusia ataca de nuevo con malware destructivo (Herm...
-
La descarga de una película pirata con malware pro...
-
Eurolink: 6 mil millones de € de la Unión Europea ...
-
Alternativas a los sistemas operativos Windows, Ma...
-
Arrancar en modo seguro en Windows 11
-
Sistemas vulnerables para practicar legalmente ata...
-
Linux es más rápido que Apple o Microsoft en corre...
-
Windows 11 dejará de admitir los cifrados inseguro...
-
Xenomorph es un nuevo malware para Android capaz d...
-
Google Drive bloquea por error archivos .DS__Store...
-
NAS ASUSTOR afectado por ataques del ransomware De...
-
Instalar un firmware no oficial en un router neutro
-
Vulnerabilidad de validación de entrada datos numé...
-
Unredacter es una herramienta gratuita para recupe...
-
Deja sin Internet a todo un barrio para evitar que...
-
Aceptar Cookies automáticamente y evitar mensajes ...
-
EE.UU. dice que Rusos atacaron contratistas americ...
-
Introducción al Sandbox de Privacidad de Android
-
Ficheros /etc/passwd /etc/shadow y /etc/group en G...
-
Google presenta Chrome OS Flex, un nuevo sistema o...
-
Envían 1TB en 1 segundo a 1 kilómetro de distancia...
-
¿Qué es el SIM Swapping? Así pueden hackear tus cu...
-
El 74% del dinero robado en ataques de ransomware ...
-
Actualizaciones de seguridad importantes de Apple ...
-
Cibertataques en Ucrania: Agencias militares y ban...
-
pfSense distro basada en FreeBSD monitoriza y admi...
-
Nueva versión distro Hacking: Kali Linux 2022.1
-
Administrar y crear servicios con systemd en Linux
-
Un bug de Zoom para MacOS Monterey dejaba encendid...
-
Android 13 permite ejecutar Windows 10, 11 y distr...
-
Windows añade protecciones para evitar la extracci...
-
Telefónica, Vodafone y Orange dicen que las empres...
-
Detenidos en Madrid por fraude zapatillas falsific...
-
Intel estrena con el kernel 5.18 funciones de pago...
-
Google paga 8.7 millones de dólares en recompensas...
-
AMD rompe su récord de cuota de mercado como fabri...
-
Empiezan a vender "Air Tags" silenciados para espi...
-
Mejora la temperatura de tu SSD con un disipador d...
-
Malware Qbot necesita sólo 30 minutos para robar d...
-
La Policía Nacional desarticula una organización c...
-
SpaceX pierde 40 de los 49 nuevos satélites instal...
-
Plugins y addons (scripts) para el firmware router...
-
EE. UU. incauta 3.600 millones de dólares robados ...
-
Microsoft deshabilita temporalmente los instalador...
-
Multadas con casi 6 millones de € varias operadora...
-
Ciberataque a Vodafone Portugal deja sin servicio ...
-
NVIDIA abandona finalmente de forma oficial sus pl...
-
La UE invertirá 43.000 millones de euros para dupl...
-
Google afirma que la verificación en 2 pasos ha co...
-
Microsoft deshabilitará por defecto las macros en ...
-
Países Bajos multa a Apple con 5 millones € por la...
-
El nuevo super yate de Jeff Bezos es tan grande qu...
-
Una filtración de datos expone las identificacione...
-
Meta amenaza con cerrar Facebook e Instagram en Eu...
-
Microsoft detectó 35.700 millones de intentos de a...
-
The Wall Street Journal hackeado por China
-
Facebook pierde usuarios por primera vez en su his...
-
El nuevo estándar WiFi 802.11bf permitirá detectar...
-
Mozilla refuerza la privacidad Firefox combinando ...
-
Monitorizar el rendimiento de contenedores Docker ...
-
Raspberry Pi OS ya está disponible en 64 bits de f...
-
VLC denuncia que hay personas domiciliando sus rec...
-
Estándar Encrypted Client Hello (ECH) permitirá me...
-
Roban 320 millones dólares de Ethereum a la plataf...
-
Comando Robocopy: herramienta copia de seguridad d...
-
Publicado exploit para nueva vulnerabilidad local ...
-
Microsoft explica el motivo porque algunos usuario...
-
La huella digital de tu GPU también sirve para ras...
-
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
DeepNude es una aplicación que utiliza inteligencia artificial y redes neuronales para eliminar la ropa de imágenes de mujeres y recrear de...
-
La barra de estado aparece en la parte supe rior de cada pantalla. Muestra los íconos que indican que has recibido notificaciones (a la izq...
-
Con la irrupción de las herramientas de inteligencia artificial generativa como CHATGPT y otras, la producción de texto creado por maquina...
Administrar y crear servicios con systemd en Linux
Systemd es un conjunto de demonios o daemons, herramientas, librerías y servicios diseñados para administrar y configurar de manera centralizada todos los servicios en sistemas operativos Linux. Systemd nos permite interactuar directamente con el núcleo o kernel del sistema operativo,
SysV ha sido desplazado de GNU/Linux y sustituido por systemd.
Crea un servicio o daemon propio
Lo primero que debemos hacer es entrar en la ruta donde se encuentran todos los servicios de Systemd, en nuestro caso os vamos a poner los ejemplos haciendo uso de Debian, pero la ruta en los diferentes sistemas operativos es exactamente la misma, no debería haber ninguna diferencia.
La ruta donde debemos ir para ver todos y cada uno de los servicios es «/etc/systemd/system/», por lo tanto, si usamos el comando «cd» vamos a poder ir hasta esta ruta sin problemas:
Si hacemos un «ls» para listar todos los servicios, vamos a poder ver todos los que hay creados de forma predeterminada. Dependiendo de los programas que hayas instalado, tendremos unos servicios u otros.
[Unit]
Description=Daemon TTRSS Auto-Update Feeds
After=network.target mysql.service
[Service]
User=www-data
ExecStart=/var/www/html/rss/update_daemon2.php
[Install]
WantedBy=multi-user.target
Debemos tener en cuenta que este servicio se iniciará siempre con el sistema operativo, a no ser que decidas que no sea así.
A continuación, qué significa cada una de las partes del fichero de configuración anterior:
Opciones básicas
- Description: podemos introducir aquí el nombre y una descripción de lo que va a hacer nuestro daemon, en este caso podemos poner lo que nosotros queramos, es una descripción de cara al administrador de sistemas, para conocer qué hace el daemon sin necesidad de mirar más código.
- After: indicaremos si queremos que se cargue después de otros servicios o componentes del sistema. Esto es algo muy importante, porque si nuestro servicio requiere que otro servicio esté levantado, entonces tendremos que seguir una secuencia en concreto. También existe otra directiva llamada «Before» que hace lo contrario, indicando que nuestro servicio se ejecute antes que ese otro servicio que nosotros especificamos.
- User: el usuario del sistema operativo que ejecutará el daemon. También puede funcionar con Group. Esto es muy importante, porque dependiendo de los permisos que necesite el servicio, tendremos que ejecutarlo con root, nuestro usuario no privilegiado o cualquier otro usuario del sistema.
- ExecStart: debemos indicar la ruta absoluta (no funcionan relativas) al script o binario que queremos ejecutar para arrancar el servicio en cuestión.
- WantedBy: directivas de uso y otras dependencias.
Opciones completas:
- Description. Aquí puedes introducir la definición o descripción del servicio. Esta información es la que aparecerá en el log y en la salida del comando systemctl status. Es decir, que tiene que ser suficientemente descriptiva para ti.
- After. Esta directiva indica que nuestro servicio tiene que iniciarse después de que la red esté lista. En el caso de que tuvieramos que esperar a que estuvira listo MariaDB, la directiva sería tal como After=mysqld.service. También podemos encadenar varios servicios, separados por espacio, por ejemplo
After=syslog.target network.target sshd.service
- ExecStart. Aquí debe figurar la ruta al ejecutable, así como los parámetros necesarios para que arranque.
- Type. Permite configurar el inicio de nuestro servicio. Así tenemos,
- simple. El proceso empieza con ExecStart y es el principal proceso del servicio.
- forking. En este caso se lanza un proceso hijo, que se convierte en el proceso principal.
- oneshot. El proceso termina antes de comenzar con las siguientes unidades.
- dbus. Las siguientes unidades empezarán cuando el proceso principal tegan el D-Bus.
- notify. En este caso depende de un mensaje de notificación enviado por sd_notify.
- idle. La ejecución del servicio se retraza hasta que todos los trabajos han terminado.
- Restart. Por defecto Systemd, no reinicia tu servicio en caso de que este caiga, por la razón que sea. Sin embargo, a ti lo que te interesa es que tu servicio siempre esté en funcionamiento. Para lograr esto, tienes que poner la directiva Restart=always. Otra opción es utilizar Restart=on-failure, en cuyo caso solo se reinicializará si el servicio se ha parado por fallo.
- RestartSec. Te permite definir el tiempo que debe transcurrir hasta que se intente poner de nuevo en marcha tu servicio. Por defecto, Systemd, trata de levantar el servicio, transcurrido 100 ms. Con esta directiva, tu puedes establecer el tiempo en segundos. Sin embargo, es interesante que dejes como mínimo un segundo para no forzar la máquina.
- StartLimitBurst y StartLimitIntervalSec. Estos dos parámetros te permitirán definir cuantos intentos StartLimtBurs y en que intervalo StartLimitIntervalSec, vas a permitir para que se restablezca el servicio. Por defecto, Systemd permite 4 intentos en 10 segundos. Por supuesto estableciendo RestartSec=3 nunca se alcanzarán estos valores.
- StartLimitIntervalSec=0, obligará a Systemd a reiniciar el servicio tantas veces como sea necesario.
- WantedBy. Esto equivale al runlevel. Establece el objetivo (Target) u objetivos bajo los que el servicio debería ser iniciado.
Objetivos o Targets
Los objetivos existentes los puedes ver en la siguiente tabla,
Runlevel Objetivo Descripción
0 poweroff.target Apagado del sistema
1 rescue.target Shell de rescate
2 multi-user.target Sistema no gráfico
3 multi-user.target Sistema no gráfico
4 multi-user.target Sistema no gráfico
5 multi-user.target Sistema gráfico
6 reboot.target Apagado y reinicio
Para conocer cual es el objetivo definido por defecto, tienes que ejecutar la siguiente orden,
systemctl get-default
Gestionar servicios en tu distribución GNU/Linux
¿Cómo saber el sistema que usa mi distro? Pues, puedes saberlo buscando estas rutas, y si las tienes, tendrás ese sistema en tu distro:
- Para saber si tienes systemd: busca la ruta /usr/lib/systemd
- Para saber si tienes Upstart: busca esta otra ruta /usr/share/upstart
- Para saber si tienes SysV init: busca el path /etc/init.d
- Hay otros, aunque sea algo más raro, en esos casos particulares, puedes hacer algo similar si sospechas que no son los anteriores.
Otra forma de hacerlo incluso más sencilla, porque es la misma para todos, es buscar info en /proc sobre el PID=1, es decir, el primer proceso del que cuelgan el resto y que se corresponde precisamente con este demonio de inicio. Para ello, solo ejecuta el siguiente comando y te devolverá el nombre:
sudo stat /proc/1/exe
Ahora ya sabes qué sistema tienes, por tanto, vamos a los comandos que puedes usar para gestionar servicios:
- SysV init: /etc/init.d/[nombre_demonio_servicio] [acción]
- systemd: systemctl [acción] [nombre_demonio_servicio]
- Upstart: service [nombre_demonio_servicio] [acción]
- Otros: si usas otro sistema diferente, es mejor que mires el manual. Por ejemplo, algunos casos raros en Linux y otros Unix puede que usen la señal del proceso SIGHUP para restablecer un servicio: kill -HUP $(cat /var/run/[servicio-PID])
Tienes que sustituir [acción] por lo que necesitas hacer. Por ejemplo, si necesitas reiniciar, pues usa reset, si quieres parar usa stop, si quieres poner en marcha usa star, etc. Y sustituye [nombre_demonio_servicio] por el nombre del demonio del servicio que quieres poner en marcha. Por ejemplo:
systemctl reset httpd
Gestionar Servicios con SystemD
Habilitar servicio al iniciar PC
Ahora que ya hemos creado el servicio en el sistema operativo, antes de poder empezar a utilizarlo debemos habilitarlo con el comando «enable». Para poder hacer esto, simplemente tenemos que ejecutar el comando «systemctl enable» seguido del nombre del servicio que acabamos de crear. No es necesario ejecutar esto en la misma ruta donde se almacenan los archivos, en nuestro caso sería:
systemctl enable ttrssupdate.service
Por supuesto, nos pedirá la contraseña de superusuario del sistema para poder habilitarlo adecuadamente, para este tipo de tareas es fundamental tener permisos de superusuario, de lo contrario no podremos hacer nada.
Ahora que ya hemos habilitado el servicio, lo tenemos que iniciar manualmente la primera vez. A partir de este momento siempre estará en ejecución, incluso cuando reiniciemos el sistema operativo, este servicio también arrancará automáticamente.
systemctl start ttrssupdate.service
En estos instantes, ya estará el servicio activo en nuestro sistema operativo. Aunque systemd puede ser bastante complicado si nos metemos en cosas avanzadas, crear un servicio no es demasiado complicado, tal y como habéis visto a lo largo de este tutorial. A continuación, os vamos a enseñar otros comandos muy útiles para administrar nuestro servicio recién creado:
- sudo systemctl daemon-reload: esta orden nos permite recargar todos los servicios de nuevo, muy útil por si modificamos varios de ellos, de esta forma, podremos hacerlo de forma global con todos.
- sudo systemctl stop ttrssupdate.service: este comando nos permite detener el servicio anteriormente iniciado, al detener el servicio podríamos hacer cambios que arrancado no se podrían hacer, por ejemplo, también para aplicar cambios tendremos que parar e iniciar el servicio.
- sudo systemctl restart ttrssupdate.service: nos permite reiniciar el servicio (es lo mismo que pararlo y arrancarlo, pero en un solo comando).
- journalctl -u ttrssupdate.service: nos permite ver el registro generado por el servicio en cuestión, por si hay algún error a la hora de ejecutarlo, o algún aviso que podría dar lugar a futuros problemas.
- sudo systemctl status ttrssupdate.service: nos permite ver la información de estado sobre el servicio en cuestión, este comando es fundamental para ver si está en funcionamiento o no.
Fuentes:
https://www.redeszone.net/tutoriales/servidores/administrar-servicios-linux-systemd/
https://www.linuxadictos.com/gestionar-servicios-en-tu-distribucion-gnu-linux.html
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.