Test Foro de elhacker.net SMF 2.1

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: Drakaris en 4 Febrero 2020, 23:52 PM

Título: Porque al detener un servicio systemctl, el estatus me da "failed"?
Publicado por: Drakaris en 4 Febrero 2020, 23:52 PM
Hola, estoy haciendo un servicio linux,sobre prevención de ataques de fuerza bruta por ssh. Lo tengo todo finalizado.

Solamente me hace falta crear el servicio y un script para añadirlo en /etc/init.d/ y configurarlo (/etc/rc?.d/) para que al inicar el equipo, se inicie.

Creo el servicio, creando un archivo con extension .service en /etc/systemd/system/sshield.service


[Unit]
Description=Service for protect attacks of brute force ssh's

[Service]
Type=simple
ExecStart=/etc/sshield/sshield.sh
ExecStop=/etc/sshield/sshield.sh stop
RemainAfterExit=yes
Restart=always

[Install]
WantedBy=multi-user.target


Le especifico que el tipo de proceso es en segundo plano:

Type=simple

Ejecuto el servicio en segundo plano:

ExecStart=/etc/sshield/sshield.sh

Especifico el script para detener el servicio:

ExecStop=/etc/sshield/sshield.sh stop


el problema esta en la detención del servicio, le especifico el mismo script pero pasandole un argumento "stop".

En el script sshield.sh, hay un condicional filtrando el argumento y si existe cuyo argumento, matará el proceso.

if [[ $1 == "stop" ]];then
       kill -9 $$
fi


El problema que creo que es, es que estoy matando cuyo proceso y el systemctl al ver que el proceso fue detenido por la señal SIGKILL pues lo detecta como "failed" cuando se hace un status (systemctl status sshield)
IMAGEN: https://drive.google.com/file/d/1i0QVUjnFRzL3nlGjLqs1khXANPZowV_b/view?usp=sharing

Normalmente que señal se le envia a un servicio para detenerlo?

Gracias

Y. Este método para detener el servicio, se consideraría correcto?