web-dev-qa-db-fra.com

Ubuntu Terminal: programme C (ou d’autres solutions) pour supprimer les processus s’exécutant sur un port spécifique et démarrer xampp

Quelqu'un peut-il m'aider? L'objectif du programme est de supprimer les processus s'exécutant sur le port 443, puis de lancer automatiquement xampp.

Ce que j'ai fait:

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

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

Utilisation de C (notez que main() renvoie généralement un int):

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

int main() {
    int ret;

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

Ou simplement en utilisant bash:

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

L'utilisation de ; à la place de && dans l'une ou l'autre des méthodes permet à /opt/lampp/xampp start de s'exécuter malgré le fait que fuser -k 443/tcp ne tue aucun processus.

4
kos

Pour tuer un processus sur un port, vous pouvez faire:

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

Changez le && en ; si vous voulez qu'il démarre xampp, que quelque chose tourne ou non sur ce port.

6
jreptak