Terminal do Ubuntu: programa C (ou outras soluções) para matar processos em execução em uma porta específica e iniciar o xampp [closed]

3

Alguém pode me ajudar? O objetivo do programa é eliminar os processos em execução na porta 443 e, em seguida, iniciar xampp automaticamente.

O que eu fiz:

#include <stdio.h>
#include <stdlib.h>

main() {
    system("netstat -tulpn | grep :443");
    /* If 443 is busy (kill all)*/
    /*next -> */ system("/opt/lampp/xampp start");
}
    
por Dragon21 05.05.2015 / 17:34

2 respostas

4

Usando C (observe que main() geralmente retorna int ):

#include <stdio.h>
#include <stdlib.h>

int main() {
    int ret;

    ret=system("fuser -k 443/tcp; /opt/lampp/xampp start");
    return ret;
}

Ou simplesmente usando bash :

fuser -k 443/tcp; /opt/lampp/xampp start

Usar ; no lugar de && em qualquer dos métodos torna /opt/lampp/xampp start executado apesar de fuser -k 443/tcp não matar nenhum processo.

    
por kos 05.05.2015 / 18:04
6

Para matar um processo em uma porta, você pode fazer:

$ fuser -n tcp -k 443 && /opt/lampp/xampp start

Altere o && para ; se quiser que ele inicie o xampp independentemente de haver algo sendo executado nessa porta ou não.

    
por jreptak 05.05.2015 / 18:34