IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

tuer une ipc


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Par défaut tuer une ipc
    bonjour a tous,

    la commande "ipcs" Fournit des informations sur l’usage des ressources IPC, est-ce qu'il ya une commande qui tue une ipc, comme pour les processe quand on fait un "ps" ensuite on fait "kill"

    Merci a tous

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Si c'est bien les IPC System V dont tu parles, tu peux les supprimer grâce à la fonction ipcrm

    Voici en cadeau un lien assez sympa: Aide-mémoire administrateur Linux
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Par défaut
    Merci beaucoup

    meme pour l'aide memoire, c'est trop génial

    le problème c'est je travaille en embarqué sur une gateway, donc je n'ai pas réellement la commande ipcs ou ipcrm, je fait un cat /proc/sysvipc pour voir les ipc, et je ne sais pas comment les supprimer de cette manière

    Merci encore

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonjour,

    Citation Envoyé par ryadh.naouar
    [...] je n'ai pas réellement la commande ipcs ou ipcrm, je fait un cat /proc/sysvipc pour voir les ipc, et je ne sais pas comment les supprimer de cette manière [...]
    Si "de cette manière" fait référence à "je fais un cat", je doute que cela soit possible.

    Par contre, si tu peux compiler un programme pour la plateforme concernée, tu peux t'inspirer de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    /*	$OpenBSD: ipcrm.c,v 1.9 2005/02/22 14:56:21 jmc Exp $*/
     
    /*
     * Copyright (c) 1994 Adam Glass
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     * 1. Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     * 2. Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     * 3. All advertising materials mentioning features or use of this software
     *    must display the following acknowledgement:
     *	This product includes software developed by Adam Glass.
     * 4. The name of the Author may not be used to endorse or promote products
     *    derived from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY Adam Glass ``AS IS'' AND
     * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED.  IN NO EVENT SHALL Adam Glass BE LIABLE
     * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     * SUCH DAMAGE.
     *
     */
     
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/msg.h>
    #include <sys/sem.h>
    #include <sys/shm.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <err.h>
    #include <signal.h>
     
    #define IPC_TO_STR(x) (x == 'Q' ? "msq" : (x == 'M' ? "shm" : "sem"))
    #define IPC_TO_STRING(x) (x == 'Q' ? "message queue" : \
    	(x == 'M' ? "shared memory segment" : "semaphore"))
     
    int signaled;
     
    void	usage(void);
    int	msgrm(key_t, int);
    int	shmrm(key_t, int);
    int	semrm(key_t, int);
    void	not_configured(int);
     
    void
    usage(void)
    {
    	extern char *__progname;
    	fprintf(stderr, "usage: %s [-M shmkey] [-m shmid] [-Q msgkey]\n"
    			"         [-q msqid] [-S semkey] [-s semid] ...\n",
    		__progname);
    	exit(1);
    }
     
    int
    msgrm(key_t key, int id)
    {
    	if (key) {
    		id = msgget(key, 0);
    		if (id == -1)
    			return (-1);
    	}
    	return (msgctl(id, IPC_RMID, NULL));
    }
     
    int
    shmrm(key_t key, int id)
    {
    	if (key) {
    		id = shmget(key, 0, 0);
    		if (id == -1)
    			return (-1);
    	    }
    	return (shmctl(id, IPC_RMID, NULL));
    }
     
    int
    semrm(key_t key, int id)
    {
    	union semun arg;
     
    	if (key) {
    		id = semget(key, 0, 0);
    		if (id == -1)
    			return (-1);
    	}
    	return (semctl(id, 0, IPC_RMID, arg));
    }
     
    /* ARGSUSED */
    void
    not_configured(int signo)
    {
    	signaled++;
    }
     
    int
    main(int argc, char *argv[])
    {
    	int c, result, errflg, target_id;
    	key_t target_key;
     
    	errflg = 0;
    	signal(SIGSYS, not_configured);
    	while ((c = getopt(argc, argv, ":q:m:s:Q:M:S:")) != -1) {
    		signaled = 0;
    		switch (c) {
    		case 'q':
    		case 'm':
    		case 's':
    			target_id = atoi(optarg);
    			if (c == 'q')
    				result = msgrm(0, target_id);
    			else if (c == 'm')
    				result = shmrm(0, target_id);
    			else
    				result = semrm(0, target_id);
    			if (result < 0) {
    				errflg++;
    				if (!signaled)
    					warn("%sid(%d)",
    					    IPC_TO_STR(toupper(c)), target_id);
    				else
    					warnx("%ss are not configured in the running kernel",
    					    IPC_TO_STRING(toupper(c)));
    			}
    			break;
    		case 'Q':
    		case 'M':
    		case 'S':
    			target_key = atol(optarg);
    			if (target_key == IPC_PRIVATE) {
    				warnx("can't remove private %ss", IPC_TO_STRING(c));
    				continue;
    			}
    			if (c == 'Q')
    				result = msgrm(target_key, 0);
    			else if (c == 'M')
    				result = shmrm(target_key, 0);
    			else
    				result = semrm(target_key, 0);
    			if (result < 0) {
    				errflg++;
    				if (!signaled)
    					warn("%skey(%ld)", IPC_TO_STR(c),
    					    target_key);
    				else
    					warnx("%ss are not configured in the running kernel",
    					    IPC_TO_STRING(c));
    			}
    			break;
    		case ':':
    			warnx("option -%c requires an argument", optopt);
    			usage();
    		default:
    			warnx("unrecognized option: -%c", optopt);
    			usage();
    		}
    	}
     
    	if (optind != argc) {
    		warnx("unknown argument: %s", argv[optind]);
    		usage();
    	}
    	exit(errflg);
    }
    Cordialement,
    DS.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Par défaut
    OK

    merci

Discussions similaires

  1. [ODBC] Tuer une requete
    Par Zobi-wane dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/01/2007, 11h45
  2. Tuer une famille de processus.
    Par yanndan dans le forum Linux
    Réponses: 2
    Dernier message: 19/05/2006, 14h03
  3. [Cookies] tuer une session en cour
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 04/05/2006, 10h57
  4. [10gR1] Tuer une tâche Oracle
    Par Cereal123 dans le forum Oracle
    Réponses: 6
    Dernier message: 24/04/2006, 17h16
  5. Comment tuer une frame
    Par tymous dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 28/07/2004, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo