Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
28 novembre 2016

htmlpdflatexmanmd




lxc-2.0.5

lxc-2.0.5

Présentation

Les options suivantes doivent être présentes dans le kernel:
    * General setup
    * Control Group support
-› Namespace cgroup subsystem
-› Freezer cgroup subsystem
-› Cpuset support
-› Simple CPU accounting cgroup subsystem
-› Resource counters
-› Memory resource controllers for Control Groups
    * Group CPU scheduler
-› Basis for grouping tasks (Control Groups)
    * Namespaces support
-› UTS namespace
-› IPC namespace
-› User namespace
-› Pid namespace
-› Network namespace
    * Device Drivers
    * Character devices
-› Support multiple instances of devpts
    * Network device support
-› MAC-VLAN support
-› Virtual ethernet pair device
    * Networking
    * Networking options
-› 802.1d Ethernet Bridging
    * Security options
-› File POSIX Capabilities
Les options suivantes doivent être présentes dans le kernel:
    * General setup
    * Control Group support
-› Namespace cgroup subsystem
-› Freezer cgroup subsystem
-› Cpuset support
-› Simple CPU accounting cgroup subsystem
-› Resource counters
-› Memory resource controllers for Control Groups
    * Group CPU scheduler
-› Basis for grouping tasks (Control Groups)
    * Namespaces support
-› UTS namespace
-› IPC namespace
-› User namespace
-› Pid namespace
-› Network namespace
    * Device Drivers
    * Character devices
-› Support multiple instances of devpts
    * Network device support
-› MAC-VLAN support
-› Virtual ethernet pair device
    * Networking
    * Networking options
-› 802.1d Ethernet Bridging
    * Security options
-› File POSIX Capabilities

Spécifications

   Un conteneur est un objet isolant des ressources de l'hôte. L'application/système est lancé dans un conteneur spécifié par une configuration qui est soit initialement créé ou passé en paramètres.
^
28 novembre 2016

htmlpdflatexmanmd




lxc-create-2.0.5

lxc-create-2.0.5

Créer conteneur

   lxc-create créé un objet système où sont stockés les informations de configuration et où peuvent être stockés les informations utilisateur. Le nom est utilisé pour spécifier le conteneur à utiliser avec les différentes commandes LXC. L'objet est un répertoire crée dans/var/lib/lxc et identifié par son nom.

OPTIONS

-f config_file Spécifie le fichier de configuration
-t template Raccourci vers un script lxc-template.
-B backingstore dir, lvm, loop, btrfs, zfs, rbd, ou best

        dir (défaut) signifie que le système racine du conteneur sera un répertoire sous /var/lib/lxc/container/rootfs.
        btrfs le système racine doit être btrfs, et le conteneur sera crée dans un nouveau volume. Cela permet de créer des clones
        lvm un périphérique block lvm sera utilisé et les options disponible sont --lvname --vgname --thinpool --fstype et --fssize
        best lxc tente dans l'ordre: btrfs, zfs, lvm, dir.

-- template-options Passe des options au template. voir lxc-create -t TEMPLATE -h
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
28 novembre 2016

htmlpdflatexmanmd




lxc-destroy-2.0.5

lxc-destroy-2.0.5

Supprimer un conteneur

OPTIONS

-f Si un conteneur est un cour de fonctionnement, l'arrête avant.
-s, --snapshots Détruit le conteneur spécifié incluant tous ses snapshots
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
28 novembre 2016

htmlpdflatexmanmd




lxc-freeze-2.0.5

lxc-freeze-2.0.5

Met en pause les processus d'un conteneur

OPTIONS

-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
28 novembre 2016

htmlpdflatexmanmd




lxc-unfreeze-2.0.5

lxc-unfreeze-2.0.5

Résume les processus d’un conteneur

OPTIONS

-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
28 novembre 2016

htmlpdflatexmanmd




lxc-execute-2.0.5

lxc-execute-2.0.5

Lance une application dans un conteneur via un processus intermédiaire lxc-init qui aura le pid 1. lxc-init est conçu pour forwarder les signaux à la commande lancée.

OPTIONS

-f, --rcfile config_file Spécifie le fichier de configuration pour le conteneur
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
28 novembre 2016

htmlpdflatexmanmd




lxc-start-2.0.5

lxc-start-2.0.5

Lance une application dans un conteneur

OPTIONS

-d, --daemon Lance en tâche de fond
-F, --foreground Ne lance pas en tâche de fond
-p, --pidfile Crée un fichier avec le process id
-f, --rcfile config_file Fichier de Configuration pour le conteneur
-c, --console console-device spécifie un device à utiliser pour la console du conteneur, ex. /dev/tty8. Par défaut, utilise le terminal courant.
-L, --console-log console-logfile Spécifie un fichier pour logger la sortie de la console du conteneur.
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-C, --close-all-fds Si un descripteur de fichier est hérité, le ferme. -d implique -c
--share-net name|pid hérite un espace de nom réseau. Il continuera d'être géré pas son propriétaire original. La configuration réseau dans ce conteneur est ignorée et les scripts up/down ne sont pas exécutés.
--share-ipc name|pid Hérite d'un espace de nom IPC
--share-uts name|pid Hérite d'un espace de nom UTS
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
28 novembre 2016

htmlpdflatexmanmd




lxc-stop-2.0.5

lxc-stop-2.0.5

Arrêter une application dans un conteneur

   lxc-stop reboot, éteind proprement, ou tue tous les processus dans le conteneur. Par défaut il tente d'éteindre le conteneur en envoyant le signal lxc.haltsignal (SIGPWR par défaut) au processus init du conteneur, attend 60 secondes, et quitte si le conteneur s'est arrêté, ou envoie lxc.stopsignal (SIGKILL par défaut) pour forcer l'extinction. Un reboot envoien un lxc.rebootsignal (SIGINT par défaut).

OPTIONS

-r, --reboot Redémarre de conteneur
-k, --kill Tue toutes les tâches dans le conteneur au lieu de les terminer proprement
--nokill termine les tâches proprement, mais ne détruit pas le conteneur si l'arrêt a échoué
--nolock Évite l'utilisation d'un lxc locking, et devrait être utilisé seulement si lxc-stop est bloqué à cause d'un mauvais état système.
-W, --nowait effectue l'action demandé et quitte
-t, --timeout TIMEOUT attend TIMEOUT secondes avec de détruit brutalement le conteneur

Codes de sortie

0 Le conteneur a été stoppé avec succès
1 Un erreur s'est produite en stoppant le conteneur
2 Le conteneur spécifié existe mais n'est pas en cours de fonctionnement
^
28 novembre 2016

htmlpdflatexmanmd




lxc-wait-2.0.5

lxc-wait-2.0.5

Attend un état de conteneur spécifique avant de se terminer

OPTIONS

-s states Spécifier l’état du conteneur
-t timeout attend timeout secondes pour l'état désiré
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Quitte quand RUNNING est atteind:
lxc-wait -n foo -s RUNNING
Quitte quand RUNNING ou STOPPED est atteind:
lxc-wait -n foo -s 'RUNNING|STOPPED'
^
25 novembre 2016

htmlpdflatexmanmd




lxc-cgroup-2.0.5

lxc-cgroup-2.0.5

Gère le cgroup associé avec un conteneur

OPTIONS

state-object Spécifie le state object name
[value] Spécifie la valeur à assigner au state-object
-q, --quiet mode silencieux
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
--rcfile=FILE Spécifie le fichier de configuration pour la virtualisation et l'isolation

Exemples

Afficher les périphériques permis:
lxc-cgroup -n foo devices.list
Assigner les processeurs 0 et 3 au conteneur:
lxc-cgroup -n foo cpuset.cpus "0,3"
^
25 novembre 2016

htmlpdflatexmanmd




lxc-monitor-2.0.5

lxc-monitor-2.0.5

Supervise l'état des conteneurs spécifiques

OPTIONS

-Q, --quit Demande à lxc-monitord dans chaque lxcpath de quitter.lxc-monitord quitte immédiatement s'il n'a pas de client au lieu d'attendre 30 secondes
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Superviser les états du conteneur foo
lxc-monitor -n foo
Superviser les états des conteneurs foo et bar
lxc-monitor -n 'foo|bar'
Superviser les états des conteneurs dont le nom commence avec 'f' ou 'b'
lxc-monitor -n '[f|b].*'
Superviser les états de tous les conteneurs
lxc-monitor -n '.*'
^
25 novembre 2016

htmlpdflatexmanmd




lxc-console-2.0.5

lxc-console-2.0.5

Lance une console permettant de se logger dans le conteneur

   Si le service tty a été configuré et est disponible pour le conteneur spécifié comme paramètre, cette commande va lancer une console permettant de se logger dans le conteneur.

OPTIONS

[escape character] Spécifie le préfixe de séquence d'échappement à utiliser au lieu de ‹ctrl a›.
-t [ttynum] Spécifie le tty à utiliser
-q, --quiet mode silencieux
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
^
25 novembre 2016

htmlpdflatexmanmd




lxc-ls-2.0.5

lxc-ls-2.0.5

Lister les conteneurs existant sur le système

OPTIONS

-1 Affiche une entrée par ligne (défaut quand la sortie n'est pas a tty)
--active Liste seulement les conteneur actifs (idem à --frozen --running)
--frozen Liste seulement les conteneurs gelés
--running Liste seulement les conteneurs en cours de fonctionnement
--stopped Liste seulement les conteneurs stoppés
-f, --fancy Utilise une sortie fantaisie, en colonnes
-F, --fancy-format Liste séparé par des "," de colonnes à afficher dans la sortie fancy. voir avec --help
-g, --groups groups Liste de groupes que le conteneur doit avoir pour être affichés
--nesting=NUM Affiche les conteneurs imbriqués. Le niveau d'imbrication à afficher peut être spécifié
--filter=regex L'expression est appliquée au nom du conteneur
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Liste tous les conteneurs, un par ligne avec nom, état, adresse ipv4 et ipv6
lxc-ls --fancy
Lister tous les conteneurs actifs et affiche la liste dans une colonne
lxc-ls --active -1
^
25 novembre 2016

htmlpdflatexmanmd




lxc-attach-2.0.5

lxc-attach-2.0.5

Lance un processus dans un conteneur en cours d'exécution

OPTIONS

-f, --rcfile config_file Spécifie le fichier de configuration pour configurer la virtualisation et l'isolation pour le conteneur.
-a, --arch Spécifie l'architecture. Accèpte les même paramètres que l'option lxc.arch.
-e, --elevated-privileges Ne supprime pas les privilège en exécutant la commande dans le conteneur. Le nouveau processus ne sera pas ajouté au cgroup du conteneur et ses capabilities ne seront pas supprimé avant l'exécution. Les privilèges sont séparés par un |. Accèpte CGROUP, CAP et LSM.
-s, --namespaces Spécifie l'espace de nom à attacher, en liste pipé, ex: NETWORK|IPC. MOUNT, PID, UTSNAME, IPC, USER, NETWORK. Implique -e
-R, --remount-sys-proc force à remonter /proc et /sys pour refléter les contextes d'espace de nom courant.
--keep-env Conserve l'environnement courant pour les programmes attachés. Mode par défaut, mais va changer dans le future à cause de fuites d'informations dans le conteneur.
--clear-env Efface l'environnement avant d'attacher.
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
25 novembre 2016

htmlpdflatexmanmd




lxc-autostart-2.0.5

lxc-autostart-2.0.5

démarrer/stopper/tuer des conteneur auto-démarrés

   lxc-autostart traite les conteneur avec lxc.start.auto définis. Il permet à l'utilisateur de démarrer et d'arrêter ces conteneurs dans le bon ordre, attendant le bon moment. Il supporte le filtrage par lxc.cgroup ou simplement lancer tous les conteneurs définis. Il peut également être utilisé par des outils externe en mode list où aucune action n'est effectuée et affiche la liste des conteneurs affectés.

OPTIONS

-r, --reboot Reboot du conteneur
-s, --shutdown Stoppe le conteneur
-k, --kill Tue toutes les tâches dans le conteneur
-L, --list Affiche seulement le nom du conteneur au lieu d'effectuer l'action.
-t, --timeout TIMEOUT Attend TIMEOUT secondes avant de stopper/démarrer le conteneur
-g, --group GROUP Liste des groupes à sélectionner. Peut être spécifié plusieurs fois.
-a, --all Ignore lxc.group et sélectionne tous les conteneurs auto-démarrés
-A, --ignore-auto Ignore le flag lxc.start.auto. Combiné avec -a, sélectionne tous les conteneurs dans le système.

Autostart et boot système

   La commande lxc-autostart fait partie du service LXC. Autorisé à lancer des hôtes au démarrage, il est utilisé pour sélectionner les conteneurs à démarrer dans l'ordre et le délai entre chaque démarrage quand l'hôte boot.

   Chaque conteneur peut faire partie d'un ou plusieurs groupes, ou aucun. 2 groupes sont spéciaux. 1 est le groupe NULL. L'autre est le groupe "onboot"

   Quand le système boot avec lxc, il tente d'abord de booter tous les conteneur avec lxc.start.auto == 1 qui est un membre du groupe onboot. Le démarrage dans l'ordre de lxc.start.order. Si un lxc.start.delay est spécifié il est honoré avant de démarrer le prochain conteneur. Une fois les membres du groupe onboot démarrés, le système lxc lance les conteneurs avec lxc.start.auto == 1 mais non membre du groupe onboot.

Exemple de démarrage

Démarre le groupe onboot en premier, puis le groupe NULL
-g "onboot,"
Démarre le groupe DNS, puis web, puis NULL, suivis par onboot:
-g "dns,web,,onboot"
^
25 novembre 2016

htmlpdflatexmanmd




lxc-checkconfig-2.0.5

lxc-checkconfig-2.0.5

Vérifie le support lxc dans le kernel

Exemple

Vérifie le kernel courant. CONFIG peut être définis dans l'environnement
lxc-checkconfig
^
25 novembre 2016

htmlpdflatexmanmd




lxc-config-2.0.5

lxc-config-2.0.5

Demander la configuration système lxc

OPTIONS

-l Liste toutes les clé supportées
‹item› Requêter la valeur de la clé spécifiée
^
25 novembre 2016

htmlpdflatexmanmd




lxc-copy-2.0.5

lxc-copy-2.0.5

Copie un conteneur existant

   lxc-copy créé et optionnellement démarre des copies de conteneurs existants. Il remplace lxc-clone et lxc-start-ephemeral. Les copies peuvent être des clones complets, dans ce cas tout le système de fichier du conteneur est simplement copié dans le nouveau conteneur. La copie peut également être un snapshot, par exemple une copie COW du conteneur original. Dans ce cas, le stockage doit supporter les snapshots (aufs, btrfs, lvm et zfs).

   si -e est spécifié un snapshot éphémère du conteneur original est créé et démarré. Les conteneur éphémères sont configurés avec lxc.ephemeral = 1 et sont détruits à l'arrêt. Si -e et -D sont spécifiés, un snapshot non éphémère est créé et démarré.

   Les conteneurs créés et démarrés avec -e peuvent avoir des montages personnalisé. Il sont spécifiés pavec -m. 3 types de montages sont supportés: aufs, bind et overlay.

OPTIONS

-N, --newname newname Nom pour la copie
-p, --newpath newpath Chemin pour la copie
-R, --rename Renomme le conteneur original
-s, --snapshot Crée un snapshot du conteneur original.
-F, --foreground Lance le snapshot en foreground
-d, --daemon Lance le snapshot en tâche de fond
-m, --mount mounttype Spécifie un montage pour un snapshot avec ses options (ex: ind=/src:/dest:ro,overlay=/src:/dest)
-B, --backingstorage backingstorage Spécifie le type de stockage à utiliser (aufs, btrfs, dir, lvm, loodp, overlay, zfs)
-L, --fssize size [unit] Spécifie la taille pour un système de fichier LVM
-D, --keepdata Avec -e, un conteneur non-éphémère est créé et démarré
-K, --keepname Le hostname du conteneur original est conservé pour la copie
-M, --keepmac L'adresse MAC du conteneur original est conservé pour la copie
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Hook de copie

   Si le conteneur copié a un ou plusieurs lxc.hook.clone, les hooks spécifiés sont appelés pour le nouveau conteneur. Les 3 premiers arguments passés au hook sont le nom du conteneur, une section 'lxc' et le type de hook (clone). La variable d'environnement LXC_ROOTFS_MOUNT donne le chemin sous lequel le système de fichier root est monté. Le chemin du fichier de configuration est stocké dans LXC_SRC_NAME, et le chemin ou le périphérique dans lequel le rootfs est localisé est dans LXC_ROOTFS_PATH.
^
25 novembre 2016

htmlpdflatexmanmd




lxc-device-2.0.5

lxc-device-2.0.5

Gère les périphériques des conteneurs en cours d'exécution

OPTIONS

-n, --name=NAME Nom du conteneur
‹action› Type d'action à effectuer, seul 'add' est actuellement supporté
‹DEVICE› Périphérique à ajouter
[NAME] Nom pour le périphérique dans le conteneur

Exemples

Créer /dev/video0 dans le conteneur p1
lxc-device -n p1 add /dev/video0
Place eth0 de l'hôte en tant que eth1 dans p1
lxc-device -n p1 add eth0 eth1
^
25 novembre 2016

htmlpdflatexmanmd




lxc-info-2.0.5

lxc-info-2.0.5

Demande des informations sur un conteneur

OPTIONS

-c, --config KEY Affiche une clé de configuration d'un conteneur. Peut être spécifié plusieurs fois
-s, --state Affiche simplement l'état du conteneur
-p, --pid Affiche simplement le pid du conteneur
-i, --ips Affiche simplement les adresses IP du conteneur
-S, --stats Affiche des statistiques du conteneur. Noter que pour des raisons de performances le kernel ne comptabilise pas la mémoire sauf si une limite est définie (ex: lxc.cgroup.memory.kmem.limit_in_bytes = number)
-H, --no-humanize Affiche les statistiques en brut.
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration

Exemples

Afficher les informations pour foo
lxc-info -n foo
Afficher les informations pour tous les conteneurs dont le nom commence par ubuntu
lxc-info -n 'ubuntu*'
Afficher la paire veth de foo
lxc-info -n foo -c lxc.network.0.veth.pair
^
25 novembre 2016

htmlpdflatexmanmd




lxc-snapshot-2.0.5

lxc-snapshot-2.0.5

Snapshot un conteneur

   Les snapshots sont stockés comme conteneur snapshot sous le chemin de configuration du conteneur.

OPTIONS

-c, --comment comment-file Associe le commentaire dans le fichier spécifié avec le snapshot
-d, --destroy snapshot-name Détruit le snapshot nommé. 'ALL' détruit tous les snapshots
-L, --list Liste les snapshots existants
-C, --showcomments Affiche les commentaires dans la liste des snapshots
-r, --restore snapshot-name Restaure un snapshot, signifiant la création d'un nouveau conteneur complet, qui est une copie du snapshot
-N, --newname En restaurant un snapshot, le dernier argument optionnel si non spécifié via --newname, est le nom à utiliser pour le conteneur restauré. Si ce nom est identique au nom original du conteneur, le conteneur original sera détruit et le conteneur restauré le remplacera. Noter que supprimer le snapshot original n'est pas possible avec aufs, overlayfs ou zfs.
-q, --quiet mode silencieux
-P, --lxcpath=PATH Chemin alternatif du conteneur. Défaut: /var/lib/lxc
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Nom du conteneur
--rcfile=FILE Spécifie le fichier de configuration
^
25 novembre 2016

htmlpdflatexmanmd




lxc-unshare-2.0.5

lxc-unshare-2.0.5

Lance un tâche dans un nouveau jeu d'espaces de noms

   lxc-unshare permet de lancer une tâche dans un jeu d'espaces de noms clonés. Principalement utilisé pour des tests. En dépit de son nom, il utilise toujours un clone au lieu de départager la nouvelle tâche avec les nouveaux namespaces.

OPTIONS

-s namespaces Spécifie les espaces de nom à attacher en liste séparé par un pipe. MOUNT, PID, UTSNAME, IPC, USER et NETWORK.
-u user Spécifie un userid pour la nouvelle tâche
-H hostname Définis le hostname dans le nouveau conteneur. Uniquement avec UTSNAME
-i interfacename Place l'interface nommée dans le conteneur. Seulement avec NETWORK
-d Met en tâche de fond
-M Monte les système de fichier par défaut (/proc, /dev/shm et /dev/mqueue) dans le conteneur. Seulement avec MOUNT

Exemples

Lancer un nouveau shell avec sont propre UTSNAME
lxc-unshare -s UTSNAME /bin/bash
Lancer un shell dans un nouvel espace réseau, pid et mount
lxc-unshare -s "NETWORK|PID|MOUNT" /bin/bash
Avec 2 interfaces réseaux (lo et veth1) et le hostname 'slave'
lxc-unshare -s "NETWORK|PID|MOUNT|UTSNAME" -M -H slave -i veth1 /bin/bash
^
25 novembre 2016

htmlpdflatexmanmd




lxc-user-nic-2.0.5

lxc-user-nic-2.0.5

Créer et attacher un nic à un autre namespace network

   lxc-user-nic est un setuid-root programme avec lequel les utilisateurs peuvent créer des interfaces réseau à utiliser par un conteneur lxc. Il consulte /etc/lxc/lxc-usernet pour déterminer le nombre d'interfaces l'utilisateur est autorisé à créer, et quel bridge peut être attaché. Il conserve le nombre d'interface dans /run/lxc/nics.

OPTIONS

pid pid pour la tâche dont
type Type d'interface réseau à attacher. Actuellement seul veth est supporté.
bridge Bridge auquel attacher l'interface
nicname nom de l'interface réseau
^
25 novembre 2016

htmlpdflatexmanmd




lxc-usernsexec-2.0.5

lxc-usernsexec-2.0.5

Lancer une tâche en root dans un nouvel espace de nom utilisateur

OPTIONS

-m uid-map uid map à utiliser dans l'espace de nom utilisation. Chaque map consiste en 4 valeur séparés par ':'. 1) le caractère u, g ou b (both), 2) userid, 3)userid vu dans l'hôte. 4) nombre d'id à mapper.

Exemples

lancer un shell avec des sous uid mappé dans le conteneur:
lxc-usernsexec
Lancer un shell autre que /bin/sh
lxc-usernsexec -- /bin/bash
map l'uid 1000 en 0, et root en 190000
lxc-usernsexec -m b:0:1000:1 -m b:1:190000:1 -- /bin/chown 1:1 $file
^
25 novembre 2016

htmlpdflatexmanmd




lxc.conf-2.0.5

lxc.conf-2.0.5

Fichiers de configuration pour LXC

   La configuration du conteneur est maintenu dans le config stocké dans le répertoire du conteneur. Une configuration de base est générée à la création du conteneur avec des valeurs par défaut recommandée depuis le template choisis, plus d'autres venant du fichier /etc/lxc/default.conf ou ~/.config/lxc/default.conf pour les conteneurs non privilégiés.

Configuration système

   La configuration système est utilisée pour définir des valeurs tels que les chemins de recherche et les paramètres de stockage pour LXC.
^
25 novembre 2016

htmlpdflatexmanmd




lxc.container.conf-2.0.5

lxc.container.conf-2.0.5

Fichiers de configuration de conteneur pour LXC

   Les conteneurs linux sont toujours créé avant être utilisés. Cette création définis un jeu de ressources système à virtualiser/isoler quand un processus utilise le conteneur. Par défaut, les pid, sysv ipc et points de montage sont virtualisés et isolés. Les autres ressources système sont partagées entre les conteneurs, tant qu'ils sont explicitement définis dans la configuration.

Configuration

lxc.include Spécifie un fichier de configuration à inclure
lxc.arch Autoriser un jeu d'architectures pour le conteneur, par exemple lancer des binaires 32bits dans un hôte 64bits
lxc.utsname Spécifie le hostname pour le conteneur
lxc.haltsignal Spécifie un signal utilisé pour arrêter le conteneur (utilisé par lxc-stop) Défaut: SIGPWR
lxc.rebootsignal Spécifie un signal utilisé pour redémarrer le conteneur (utilisé par lxc-stop) Défaut: SIGINT
lxc.stopsignal Spécifie un signal utilisé pour stopper le conteneur (utilisé par lxc-stop) Défaut: SIGKILL
lxc.init_cmd Chemin absolu dans le rootfs du conteneur du binaire à utiliser comme init. Défaut: /sbin/init
lxc.init_uid UID à utiliser dans un namespace user pour init. Défaut: 0
lxc.init_gid GID à utiliser dans un namespace user pour init. Défaut: 0
lxc.ephemeral (bool) Spécifie si un conteneur est détruit à l'arrêt
lxc.network Peut être utilisé sans valeur pour supprimer toutes valeurs précédentes.
lxc.network.type Spécifie le type de réseau à utiliser pour le conteneur. Chaque fois qu'un lxc.network.type est trouvé, une nouvelle configuration réseau commence et permet de définir plusieurs types de réseaux:

        none Le conteneur partage l'espace réseau de l'hôte
        empty Ne créé que l'interface loopback
        veth Créé une paire ethernet virtuel, dont la partie dans l'hôte est attaché à un bridge.
        vlan interface vlan lié avec l'interface
        macvlan lie une interface macvlan
        phys Une interface déjà existante est assignée au conteneur

lxc.network.vlan.id Pour le type vlan, indique le numéro du vlan
lxc.network.flags Àction à prendre pour le réseau (up=active l'interface)
lxc.network.link Spécifie l'interface à utiliser pour le trafic réseau réel (type phys ou macvlan)
lxc.network.mtu mtu max pour cette interface
lxc.network.name Nom de l'interface
lxc.network.hwaddr Adresse mac pour l'interface virtuelle
lxc.network.ipv4 IPv4 de l'interface
lxc.network.ipv4.gateway passerelle de l'interface
lxc.network.ipv6 IPv6 pour l'interface
lxc.network.ipv6.gateway Passerelle ipv6 pour l'interface
lxc.network.script.up script à exécuter après la création/configuration de l'interface (côté hôte).
lxc.network.script.down script à exécuter après la avant de détruire l'interface (côté hôte).
lxc.pts Si définis, le conteneur aura une nouvelle instance de pseudo tty. La valeur spécifie le nombre de tty permis.
lxc.console.logfile Chemin vers un fichier où la sortie de la console est écrite
lxc.console Chemin vers un périphérique auquel la console est attachée. Option dangereuse.
lxc.tty Spécifie le nombre de tty à rendre disponible dans le conteneur
lxc.devttydir Spécifie un répertoire sous /dev sous lequel créer les périphériques de console du conteneur. les pty Unix98 sont créés sur l'hôte et lié dans les périphériques attendus dans le conteneur. Par défaut, il sont liés sur /dev/console et /dev/ttyN. Cela peut empêcher des misesà jours. En changeant d'emplacement sous /dev, ils seront liés symboliquement.
lxc.autodev Par défaut lxc ne créé que quelques liens symboliques dans /dev du conteneur (fd,stdin,stdout,stderr) ais ne créé pas automatiquement les entrées de périphérique. À 1, lxc monte un nouveau tmpfs sous /dev (limité à 500k) et définis les périphériques minimum requis. À 0, empêche de monter et remplir /dev
lxc.kmsg Active /dev/kmrsg comme lien vers /dev/console. Défaut: 0
lxc.mount Les points de montage sont privés au conteneur. Spécifie l'emplacement d'un fichier fstab contenant les informations de montage.
lxc.mount.entry Spécifie un point de montage correspondant à une ligne dans le fichier fstab
lxc.mount.auto Spécifie quels systèmes de fichiers kernel devraient être automatiquement montés:

        proc:mixed /proc est monté en rw, mais /proc/sys et /proc/sysrq-trigger sont montés en ro
        proc:rw /proc est monté en rw
        sys:mixed /sys en ro, /sys/devices/virtual/net en rw
        sys:ro monté en ro
        sys:rw monté en rw
        cgroup:mixed Monte un tmpfs sous /sys/fs/cgroup, créé les répertoires pour toutes les hiérarchies auquel le conteneur est ajouté, créé les sous-répertoires avec le nom du cgroup, et mount le cgroup du conteneur dans ce répertoire. Le conteneur sera capable d'écrire dans son propre cgroup mais pas les parents, vu qu'ils sont remontés en ro
        cgroup:ro tout en ro
        group:rw en rw
        cgroup-full:mixed Un peu plus simplifié que cgroup:mixed, peut laisser fuiter des information dans le conteneur.
        group-full:ro tout en ro
        cgroup-full:rw tout en rw

lxc.rootfs Emplacement du système de fichier racine pour le conteneur. Peut être un fichier image, un répertoire, ou un périphériques block. Non spécifié, partage celui de l'hôte
lxc.rootfs.mount Où monter récursivement lxc.rootfs avant le pivot.
lxc.rootfs.options Options de montage supplémentaires pour rootfs
lxc.rootfs.backend Spécifie le type de backend rootfs à utiliser (dir, zfs,...).
lxc.cgroup.[subsystem name] Spécifie la valeur cgroup à définir.
lxc.cap.drop Capabilities à supprimer dans le conteneur, sans le préfix CAP.
lxc.cap.keep Spécifie la capabilitie à conserver dans le conteneur. none supprime toutes les capabilities
lxc.aa_profile Spécifie le profile apparmor sous lequel le conteneur devrait fonctionner. unconfined désactive apparmor. unchanged conserve le profile du conteneur parent.
lxc.aa_allow_incomplete les profiles apparmor sont basés sur des chemins. Donc des restrictions de fichier nécessitent des restrictions de montage. Cependant, ces restrictions de montage ne sont pas encore implémentées dans le kernel. À 0, le conteneur n'est pas démarré si le kernel n'a pas les fonctions de montage apparmor, donc un regression après une mise à jours kernel sera détectée.
lxc.se_context Spécifie le contexte SELinux sous lequel le conteneur devrait être lancé ou unconfined_t. (ex: system_u:system_r:lxc_t:s0:c22)
lxc.seccomp Spécifie un fichier contenant la configuration seccomp à charger avant que le conteneur démarre.
lxc.id_map Un conteneur peut être démarré dans un namespace user privé avec un mappage. Contient 4 champs séparés par des espaces:

        1 'u', 'g', ou 'b' pour both
        2 L'UID/GID vu dans le namespace
        3 L'UID/GID vu dans l'hôte
        4 Le nombre d'uid/gid consécutifs à mapper

hooks

   Les hooks de conteneur sont des programmes ou des scripts qui peuvent être exécutés à divers moments dans la durée de vie d'un conteneur. Quand un hook est exécuté, des informations sont passées en argument et via les variables d'environnement:

        - Le nom du conteneur
        - Section (toujours 'lxc')
        - Type de hook (ex: 'clone' ou 'pre-mount')
        - Arguments additionnels.
        LXC_NAME Nom du conteneur
        LXC_ROOTFS_MOUNT Chemin du rootfs monté
        LXC_CONFIG_FILE Chemin du fichier de configuration de conteneur
        LXC_SRC_NAME Dans le cas d'un hook clone, c'est le nom du conteneur original
        LXC_ROOTFS_PATH valeur de lxc.rootfs pour le conteneur

lxc.hook.pre-start Un hook à lancer dans l'espace de nom de l'hôte avant que le ttys du conteneur, consoles ou mountages soient effectués.
lxc.hook.pre-mount Un hook à lancer dans l'espace de nom fs du conteneur avant que le rootfs ne soit up. Permet la manipulation du rootfs (ex: fs chiffré)
lxc.hook.mount Un hook à lancer dans l'espace de nom du conteneur après que le montage ait été effectué, mais avant le pivot_root
lxc.hook.autodev Un hook à lancer dans l'espace de nom du conteneur après que le montage ait été effectué, mais avant le pivot_root si lxc.autodev == 1. Permet d'assister le remplissage de /dev
lxc.hook.start Un hook à lancer dans l'espace de nom du conteneur immédiatement après l'exécution du init. Nécessite un programme dans le conteneur
lxc.hook.stop Un hook à lancer dans l'espace de nom de l'hôte après que le conteneur ait été éteind. Pour chaque espace de nom un argument est passé au hook contenant le type de namespace et un fichier qui peut être utilisé pour obtenir un fd vers le namespace correspondant.
lxc.hook.post-stop Un hook à lancer dans l'espace de nom de l'hôte après que le conteneur ait été stoppé.
lxc.hook.clone Un hook à lancer quand le conteneur est cloné.
lxc.hook.destroy Un hook à lancer quand le conteneur est détruit

   Des variables d'environnement sont disponible aux hooks pour fournir des informations de configuration. Toutes les variables ne sont pas valides dans tous les contextes. En particulier, tous les chemins sont relatifs au système hôte et donc non valides durant lxc.hook.start

LXC_NAME Nom du conteneur
LXC_CONFIG_FILE Chemin du fichier de configuration de conteneur
LXC_CONSOLE Chemin de la console de sortie du conteneur si non null
LXC_CONSOLE_PATH Chemin de la console de sortie de log du conteneur si non null
LXC_ROOTFS_MOUNT Chemin du rootfs monté dans l'hôte
LXC_ROOTFS_PATH Valeur de lxc.rootfs pour le conteneur
LXC_SRC_NAME Dans le cas d'un hook clone, c'est le nom du conteneur original
LXC_TARGET Seulement pour le hook stop. Vaut stop ou reboot
LXC_CGNS_AWARE Non définis, cette version de lxc ne gère pas les namespaces cgroup. Ne garantit pas que ces namespaces sont activés dans le kernel.

lxc.loglevel Niveau de log de 0 (trace) à 8 (fatal)
lxc.logfile Fichier où logger les infos
lxc.start.auto (bool) Indique si le conteneur devrait être auto-démarré.
lxc.start.delay Délai d'attente avant que le conteneur suivant ne soit démarré
lxc.start.order Un entier utilisé pour trier les conteneurs durant l'auto-démarrage
lxc.monitor.unshare Si non 0, le namespace de montage sera non partagé avec l'hôte avant l'initialisation du conteneur (avant le hook pre-start). Nécessite CAP_SYS_ADMIN.
lxc.group Clé multivalué pour placer le conteneur dans un groupe.

lxc.environment Permet de passer des variables d'environnement au conteneur. Noter que ces variables sont visibles dans l'hôte dans /proc/PID/environ

Exemples de configuration

Exemple de configuration réseau:
lxc.utsname = myhostname
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.hwaddr = 4a:49:43:49:79:bf
lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597

uid/gid mapping
lxc.id_map = u 0 100000 10000
lxc.id_map = g 0 100000 10000

cgroup
lxc.cgroup.cpuset.cpus = 0,1
lxc.cgroup.cpu.shares = 1234
lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 1:3 rw
lxc.cgroup.devices.allow = b 8:0 rw

Exemple de configuration complexe:
lxc.utsname = complex
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 4a:49:43:49:79:bf
lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
lxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588
lxc.network.type = macvlan
lxc.network.flags = up
lxc.network.link = eth0
lxc.network.hwaddr = 4a:49:43:49:79:bd
lxc.network.ipv4 = 10.2.3.4/24
lxc.network.ipv4 = 192.168.10.125/24
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596
lxc.network.type = phys
lxc.network.flags = up
lxc.network.link = dummy0
lxc.network.hwaddr = 4a:49:43:49:79:ff
lxc.network.ipv4 = 10.2.3.6/24
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297
lxc.cgroup.cpuset.cpus = 0,1
lxc.cgroup.cpu.shares = 1234
lxc.cgroup.devices.deny = a
lxc.cgroup.devices.allow = c 1:3 rw
lxc.cgroup.devices.allow = b 8:0 rw
lxc.mount = /etc/fstab.complex
lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0
lxc.rootfs = /mnt/rootfs.complex
lxc.cap.drop = sys_module mknod setuid net_raw
lxc.cap.drop = mac_override
^
25 novembre 2016

htmlpdflatexmanmd




lxc.system.conf-2.0.5

lxc.system.conf-2.0.5

Fichiers de configuration du système LXC

   Ce fichier est localisé dans /etc/lxc/lxc.conf ou ~/.config/lxc/lxc.conf. Ce fichier est utilisé pour définir des valeurs telles que les chemins de recherche par défaut et les paramètres de stockage pour LXC.

lxc.lxcpath Emplacement dans lequel tous les conteneur sont stockés
lxc.default_config Emplacement de la configuration du conteneur par défaut
lxc.cgroup.use liste de cgroup à définis. Si aucun n'est définis, tous les contrôleurs sont utilisés
lxc.cgroup.pattern Chaîne utilisée pour générer le chemin cgroup (ex: lxc/%n)
lxc.bdev.lvm.vg Nom du volume groupe par défaut
lxc.bdev.lvm.thin_pool nom du pool thin par défaut
lxc.bdev.zfs.root Nom du root ZFS par défaut

^
25 novembre 2016

htmlpdflatexmanmd




lxc.usernet-2.0.5

lxc.usernet-2.0.5

Administration de réseau utilisateur non-privilégié

   /etc/lxc/lxc-usernet contrôle les limites du programme lxc-user-nic pour les interfaces réseau qu'un utilisateur non-privilégié peut créer. Le fichier de configuration consiste d'entrées sous la forme:

  user|@group type bridge number

        user|@group username ou nom du groupe auquel l'entrée s'applique
        type Type de réseau autorisé. Seule veth est supporté actuellement
        bridge nom du bridge auquel les interfaces peuvent être attachés
        number Nombre d'interfaces réseau du type donné que l'utilisateur/groupe peut attacher au bridge donné.

^
08 octobre 2016

htmlpdflatexmanmd




ps

ps

Afficher un instantanné des processus

   ps affiche des informations sur une sélection des processus actifs. Pour une mise à jours répétitive de la sélection, utiliser top. ps accepte plusieurs types d'options:

Options UNIX qui peuvent être groupés et doivent être précédes par un '-'
Options BSD qui peuvent être groupés et ne doivent pas être utilisé avec un '-'
Options longues GNU Qui sont précédés par '--'

   Les options des différents types peuvent être librement mixés, mais des conflits peuvent apparaître. Noter que ps -aux est distinct de ps aux. Les standards POSIX et UNIX exigent que ps -aux affiche tous les processus possédés par l'utilisateur x, et affiche tous les processus qui ont été sélectionnés par d'option -a.

   Par défaut, ps sélectionne tous les processus avec le même user ID effectif (euid=EUID) comme utilisateur cournat et associé par le même terminal que l'invoqueur. Il affiche le process ID (pid=PID), le terminal associé avec les processus (tname=TTY), le temps CPU cumulé (time=TIME), et le nom de l'exécutable (ucmd=CMD). La sortie n'est pas triée par défaut.

   L'utilisation des options de type BSD ajoute un état de processus (stat=STAT) à l'affichage par défaut et affiche les arguments de la ligne de commande (args=COMMAND) au lieu du nom de l'exécutable. Ce mode peut être changé avec la variable d'environnement PS_FORMAT. L'utilisation des options type BSD changent également la sélection de processus pour inclure les processus de tous les autres terminaux (TTYs) qui sont possédés par l'utilisateur courant.

   Excepté quand spécifié, les options de sélection de processus sont additifs.

Pour voir tous les processus dans le système en utilisant la syntaxe standard:
ps -e
ps -ef
ps -ef
ps -ely
Pour voir tous les processus dans le système avec la syntaxe BSD:
ps ax
ps axu
Pour afficher une arborescence de processus:
ps -ejH
ps axjf
Pour obtenir des informations sur les threads:
ps -eLf
ps axms
Pour obtenir les informations de sécurité:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Pour voir tous les processus fonctionnant sous root au format utilisateur:
ps -U root -u root u
Pour voir tous les processus avec un format définis par l'utilisateur:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
Afficher seulement les PID de syslogd:
ps -C syslogd -o pid=
Afficher seulement le nom du PID 42:
ps -p 42 -o comm=

Sélection de simple processus

a Sélection "seulement vous-même".
-A, -e Sélectionne tous les processus.
-a Sélectionne tous les processus excepté les processus non associés avec un terminal et les leaders de session.
-d Sélectionne tous les processus excepté les têtes de session
--deselect, -N Sélectionne tous les processus excepté ceux qui remplissent les conditions spécifiées (inverse la sélection).
T Sélectionne tous les processus excepté ceux associés avec ce terminal. Identique à l'option t sans argument.
r Restreins la sélection seulement aux processus en cours de fonctionnement.
x Restriction "doit avoir un tty"

Sélection de processus par liste

   Ces options acceptent un seul argument sous la forme d'une liste séparé par ',' ou ' '. Ils peuvent être utilisés plusieurs fois. par exemple: ps -p "1 2" -p 3,4

-123, 123 Identique à --pid 123
-C cmdlist Sélectionne par nom de commande. Sélectionne les processus dont le nom de l'exécutable est dans cmdlist
-g grplist Sélectionne par session ou par nom de groupe effectif.
--Group grplist Sélection par Group ID réel ou nom.
--group grplist sélectionne par group ID effectif ou nom. Sélectionne les processus dont le nom de groupe effectif ou ID est dans grplist.
-p pidlist, -p pidlist, --pid pidlist Sélectionne par process ID
-ppid pidlist Sélectionne par PID parent.
-s sesslist, --sid sesslist Sélection par session ID.
-t ttylist, --tty ttylist Sélectionne par tty
U userlist, -u userlist, --user userlist Sélection par user ID effectif
-U userlist --User userlist Sélection par user ID effectif

Contrôles de format de sortie

   Ces options sont utilisée pour choisir les informations affichées par ps.

-c Affiche différentes informations du scheduler pour l'option -l
--context Affiche le context de sécurité (SELinux)
-f Listing complet. Peut être combiné avec d'autres options pour ajouter de colonnes. Affiche également les arguments de commande.
-F Format complet.
--format format format spécifié. Identique à -o et o
j Contrôle de job BSD
-j format de jobs
l Format long BSD
-l Format long. L'option -y est souvent utile avec lui.
-M Ajoute une colonne de données de sécurité. Identique à Z (pour SELinux)
O format Spécifier l'ordre de trie.
-O format Identique mais préchargé avec certaines colonnes par défaut. identique à -o pid,format,state,tname,time,command ou -o pidformat,tname,time,cmd
o format Format spécifié par l'utilisateur. Identique à -o et --format
-o format Format utilisateur. le format est un simple argument sous la forme d'une liste séparé par des ',' ou ' '. Les en-têtes peuvent être renommés(ps -o pid,ruser=RealUser -o comm=Command). Si tous les en-têtes sont vides (ps -o pid= -o comm=), l'en-tête n'est pas affiché. La largeur des colonnes augmente si nécessaire pour des en-tête plus large; cela peut être utilisé pour élargir les colonnes tel que WCHAN (ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm). Le contrôle de largeur explicite ps opid,wchan:42,cmd permet de le faire également.

        s Affiche le format du signal
        u Affiche le format orienté utilisateur
        v Affiche le format de mémoire virtuelle
        X Enregistre le format
        -y n'affiche pas les flag. Ne peut être utilisé qu'avec -l
        Z Ajoute une colonne de donnée de sécurité. Identique à -M (pour SELinux)

Modifieurs de sortie

c Affiche le vrai nom de la commande. c'est dérivé du nom du fichier exécutable, au lieu de la valeur de argv
--cols n, --columns n Définis la largeur de l'écran
--cumulative Inclus certaines données de processus enfant morts
e Affiche l'environnement après la commande.
f, --forest hiérarchie de processus ASCII
h Pas d'en-tête (ou un par écran dans le type BSD).
-H Affiche la hiérarchie des processus
--headers Répète les lignes d'en-tête, une par page de sortie
-k spec Spécifie l'ordre de trie. Trier la syntaxe est [+|-]key[,[+|-]key[,...]]. Utiliser un clé de la section Spécifieurs de format standard.

        exemples
        ps jaxkuid,-ppid,+pid
        ps axk comm o comm,args
        ps kstart_time -ef

--lines n Définis la hauteur d'écran
namelist, N namelist Définis le fichier namelist. Identique à N. le fichier namelist est nécessaire pour un affichage WCHAN propre, et doit correspondre à la version de Linux pour une sortie correcte. Sans cette option, le chemin de recherche par défaut pour namelist est:

        $PS_SYSMAP
        $PS_SYSTEM_MAP
        /proc/\*/wchan
        /boot/System.map-$(uname -r)
        /boot/System.map
        /lib/modules/$(uname -r)/System.map
        /usr/src/linux/System.map
        /System.map

n Sortie numérique pour WCHAN et USER (incluant tous les types de UID et GID).
--no-headers, --no-heading N'affiche pas le ligne d'en-tête.
--rows n Définis la hauteur d'écran
S Summarise les informations, tel que l'utilisation CPU, des processus enfant morts dans leur parent. Utile pour examiner un système où un processus parent forks en répétition des enfants de courte durée qui ne fonctionne pas.
--sort spec Spécifie l'ordre de trie. la syntaxe est [+|-]key[,[+|-]key[,...]]. exemple: ps jax --sort=uid,-ppid,+pid
w, -w Sortie large. Utiliser cet option 2 fois pour une largeur illimitée
--width n Définis la largeur de l'écran

Affichage des threads

H Affiche les threads comme s'ils étaient des processus
-L Affiche les threads, possiblement avec les colonnes LWP et NLWP
m, -m Affiche les threads après les processus
-T Affiche les threads, possiblement avec la colonne SPID

Autres informations

L Liste tous les spécifieurs au format long
V, -V, --version Affiche la version de procps-ng

Notes

   ps fonctionne en lisant le système de fichier virtuel /proc. ps n'a pas besoin d'être setuid kmem ni d'avoir aucun privilèges pour fonctionner. Ne pas donner à ce ps des permissions spéciales.

Ce ps doit accéder aux données namelist pour un affichage correcte de WCHAN.
L'utilisation CPU est actuellement exprimée en pourcentage de temps passé durant tous de cycle d'un processus. Ce n'est pas idéal, et n'est pas conforme au standards.
Les champs SIZE et RSS ne comptent pas certaines parties d'un processus incluant des tables de page, pile kernel, structure thread_info, et structure task_struct. C'est généralement au moins 20KiB de mémoire qui sont toujours résidents. SIZE est la taille virtuelle du processus (code+data+stack).
Les processus marqués ‹defunct› sont des processus morts (appelés zombie) qui restent parce que leur parent ne les ont pas détruit proprement. Ce processus seront détruit par init si le processus parent de termine.
Si la longueur du username est supérieur à la longueur de la colonne d'affichage, le user ID est affiché à la place.

Flags de processus

   La somme de ces valeurs est affiché dans la colonne F, qui est fournis par le spécifieur de sortie flags:

        1 Forké mais pas exécuté
        4 A utilisé les privilèges super-utilisateur.

codes d'état de processus

D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped, either by a job control signal or because it is being traced
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by its parent

codes d'état de processus supplémentaires BSD

high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process group

Spécifieurs de format standard

   Les différents mots clé qui peuvent être utilisés pour contrôler le format de sortie (ex avec l'option -o) ou pour trier les processus sélectionnés avec l'option --sort (exemple: ps -eo pid,user,args --sort user) Cette version de ps tente de reconnaître le plus de mots clés utilisé dans d'autres implémentations de ps.

   Les spécifieurs de format suivant peuvent contenir des espaces: args, cmd, comm, command, fname, ucmd, ucomm, lstart, bsdstart, start. Certains mots clé peut ne pas être disponible pour le trie.

        CODE - HEADER DESCRIPTION
        %cpu $CPU Utilisation cpu du processus au format "##.#". Actuellement, c'est le temps CPU utilisé divisé par le temps de fonctionnement du processus. (ratio cputime/realtime), exprimé en pourcentage (alias pcpu)
        %mem %MEM Ratio de la taille du jeu résident du processus de la mémoire physique sur la machine, exprimée en pourcentage (alias pmem)
        args COMMAND Commande avec tous ses arguments.
        blocked BLOCKED Masque des signaux bloqués.
        bsdstart START date de démarrage de la commande. Si le processus a démarré depuis moins de 24heures, le format est " HH:MM", sinon c'est "Mmm:SS" où Mmm est le mois sur 3 lettres.
        bsdtime TIME Temps cpu cumulé user + système.
        c C Utilisation du processeur. Actuellement, c'est une valeur entière du pourcentage d'utilisation sur la durée de vie du processus.
        caught CAUGHT Masque des signaux capturés.
        cgroup CGROUP Affiche les cgroupe auquel le processus appartient.
        class CLS Classe de scheduling du processus. Les valeurs de champ possibles sont:

                - not reported
                TS SCHED_OTHER
                FF SCHED_FIFO
                RR SCHED_RR
                B SCHED_BATCH
                ISO SCHED_ISO
                IDL SCHED_IDLE
                ? unknown value

        cls CLS idem à class
        cmd CMD voir args
        comm COMMAND Nom de la commande (seulement le nom de l'exécutable). Les modification du nom de la commande ne seront pas affichés.
        command COMMAND Voir args
        cp CP dixième de pourcentage d'utilisation CPU
        cputime TIME Temps CPU cumulatif au format [DD-]hh:mm:ss (alias time)
        egid EGID GID effecif du processus comme entier décimal
        egroup EGROUP GID effectif du processus. C'est le GID textuel, s'il peut être obtenu et que la largeur du champ le permet, ou une représentation décimal sinon (alias group)
        eip EIP Pointer d'instruction
        esp ESP Pointeur de pile
        etime ELAPSED Temps passé depuis que le processus a démarré, sous la forme [[DD-]hh:]mm:ss.
        etimes ELAPSED Temps passé depuis que le processus a démarré, en secondes
        euid EUID UID effectif (alias uid)
        euser EUSER Nom d'utilisateur effectif. C'est l'UID textuel, s'il peut être obtenu et que la largeur du champ le permet, ou une représentation décimal sinon (alias uname, user)
        flag, flags f F Flags associés avec le processus (alias flag, flags)
        fgid FGID GID d'accès du système de fichier (alias fsgid)
        fgroup FGROUP ID de groupe d'accès du système de fichier. C'est un ID de groupe textuel, s'il peut être obtenu et que la largeur de champ le permet. (alias fsgroup)
        fname COMMAND 8 premiers octets du nom de base du fichier exécutable du processus. La sortie dans cette colonne peut contenir des espaces
        fuid FUID ID utilisateur d'accès au système de fichier (alias fsuid)
        fuser FUSER ID utilisateur d'accès au système de fichier . C'est un ID utilisateur textuel, s'il peut être obtenu et que la largeur de champ le permet
        gid GID voir egid (alias egid)
        group GROUP voir egroup. (alias egroup)
        ignored, IGNORED masque des signaux ignorés (alias sig_ignore, sigignore)
        ipcns IPCNS Numéro d'inode unique décrivant l'espace de nom du process.
        label LABEL Label de sécurité, principalement utilisé par SELinux.
        lstart STARTED date/heure de démarrage de la commande. voir également bsdstart, start, start_time et stime)
        lsession SESSION Affiche l'identifiant de session de login d'un processus, si le support de systemd est inclus
        lwp LWP ID de thread de l'entité dispatchable (alias spid,tid)
        lxc LXC nom du conteneur lxc dans lequel la tâche tourne.
        machine MACHINE Affiche le nom de la machine pour les processus assigné à des VM ou conteneurs, si le support de systemd est inclus
        maj_flt MAJFLT numéro de page faults majeur qui s'est produit avec ce processus
        min_flt numéro de page faults mineur qui s'est produit avec ce processus
        mntns MNTNS Numéro d'inode unique décrivant l'espace de nom du process.
        netns NETNS Numéro d'inode unique décrivant l'espace de nom du process.
        ni NI Valeur nice.
        nice voir ni
        nlwp NLWP nombre de lwps (threads) dans le processus. Alias thcount.
        nwchan WCHAN Adresse de la fonction kernel où le processus attend.
        ouid OWNER UID de propriétaire de la session d'une processus, si le support de systemd est inclus
        pcpu %CPU (alias %cpu)
        pending PENDING Masque de signaux d'attente. Les signaux d'attente dans le processus sont distincts des signaux d'attente des threads individuels. Utiliser l'option m ou -m pour voir les 2. (alias sig)
        pgid PGID ID du groupe du processus, ou ID de processus du groupe du chef de processus (alias pgrp)
        pgrp PGRP (alias pgid)
        pid PID ID du processus (alias tgid)
        pidns PIDNS Numéro d'inode décrivant l'espace de nom auquel le processus appartient
        pmem %MEM (alial %mem)
        policy POL Classe du scheduler du processus (alias class, cls)
        ppid PPID ID du processus parent
        pri PRI Priorité du processus. Des valeur élevée signifient un priorité inférieure
        rgid RGID GID réel
        rgroup RGROUP Nom réel du groupe.
        rss RSS Resident Set Sigze, la mémoire physique non-swappée qu'une tâche a utilisé (en Ko) (alias rssize, rsz)
        rssize RSS (alias rss, rsz)
        rsz RSZ (alias rss, rssize)
        rtprio RTPRIO Realtime priority
        ruid RUID UID réel
        ruser RUSER Nom d'utilisateur réel
        s S État (sur un caractère). Voir stat. (alias state)
        sched SCH Stratégie de scheduling du processus. Les stratégies SCHED_OTHER (SCHED_NORMAL), SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, et SCHED_IDLE sont affichés respectivement 0, 1, 2, 3, 4, et 5.
        seat SEAT Identifiant associé avec tous les périphériques hardwares assignés à l'emplacement spécifique, si le support de systemd est inclus
        sess SESS ID de session, ou le PID du chef de session. (alias session, sid)
        sgi_p P Processeur sur lequel le processus est exécuté. Affiche '*' si le processus n'est pas en cours d'exécution
        sgid SGID GID sauvé (alias svgid)
        sgroup SGROUP Nom du groupe sauvé.
        sid SID (alias sess, session)
        sig PENDING (alias pending, sig_pend)
        sigcatch CAUGHT (alias caught, sig_catch)
        sigignore IGNORED (alias ignored, sig_ignore)
        sigmask BLOCKED (alias blocked, sig_block)
        size SIZE Quantité approximative d'espace swap qui est requis si le processus modifiait les pages writable puis se swapait. Ce nombre est très approximatif
        slice SLICE Affiche l'unité slice auquel appartient le processus, si le support systemd est inclus
        spid SPID (alias lwp,tid)
        stackp STACKP Adresse du bas de la pile pour le processus
        start STARTED Date à laquelle la commande a démarré. Si le processus n'a pas été démarré la même année que ps, affiche seulement l'année
        start_time START Date et heure de lancement du processus.
        state S (alias s)
        suid SUID UID sauvé. (alias svuid)
        supgid SUPGID GID des groupes supplémentaires
        supgrp SUPGRP Noms des groupes supplémentaires
        suser SUSER Nom de l'utilisateur sauvegardé
        svgid SVGID (alias sgid)
        svuid SVUID (alias suid)
        sz SZ Taille dans les pages physiques de l'image core du processus. Inclus text, data, et stack
        tgid TGID Nombre représentant le groupe de threads auquel une tâche appartient. (alias pid)
        thcount THCNT nombre de threads kernels possédés par le processus (alias nlwp)
        tid TID Nombre unique représentant une entité dispatchable. (alias lwp, spid).
        time TIME Temps CPU cumulé au format "[DD-]HH:MM:SS". (alias cputime)
        tname TTY tty contrôlant. (alias tt, tty)
        tpgid TPGID ID du groupe de processus sur le tty auquel le processus est connecté, ou -1 si le processus n'est pas connecté à un tty
        trs TRS Taille Text resident set, quantité de mémoire physique dévouée au code exécutable
        tt TT TTY controlant (alias tname, tty)
        tty TT (alias tname, tt)
        ucmd CMD (alias comm, ucomm)
        ucomm COMMAND alias (comm, ucmd)
        uid UID (alias euid)
        uname USER (alias euser,user)
        unit UNIT Unit auquel appartient le processus, si le support systemd est inclus.
        user USER (alias euser, uname)
        userns USERNS Numéro inode unique décrivant l'espace de nom auquel le processus appartient.
        utsns UTSNS Numéro inode unique décrivant l'espace de nom auquel le processus appartient.
        uunit UUNIT user le unit auquel appartient le processus, si le support systemd est inclus
        vsize VSZ (alias vsz)
        vsz VSZ Taille de mémoire virtuelle en Kio. (alias vsize)
        wchan WCHAN Nom de la fonction kernel dans lequel le processus est en attente.

Variables d'environnement

COLUMNS Change la largeur d'affichage par défaut
LINES Change la hauteur par défaut
PS_PERSONALITY posix, old, linux, bsd, sun, digital, ...
CMD_ENV posix, old, linux, bsd, sun, digital, ...
I_WANT_A_BROKEN_PS Force l'interpretation de ligne de commande obsolète
LC_TIME Format de date
POSIXLY_CORRECT Strictement Conforme à POSIX
POSIX2 À on, agit comme POSIXLY_CORRECT
UNIX95 Pas d'excuse pour ignorer les mauvaise fonctionnalités de ps
_XPG Annule CMD_ENV=irix
^
14 octobre 2014

htmlpdflatexmanmd




lxc-ps

lxc-ps

Liste les processus appartenant à un conteneur spécifique

OPTIONS

--name NAME spécifie le nom du conteneur pour limiter la sortie
--lxc Limite la sortie au processus appartenant à tous le conteneur lxc
ps_options l'option est passée à la commande ps
^
14 octobre 2014

htmlpdflatexmanmd




lxc-ls

lxc-ls

Lister les conteneurs existant sur le système

OPTIONS

-# Affiche une entrée par ligne (défaut quand /dev/stdout n'est pas un tty)
--active Liste uniquement les conteneurs actifs (idem à --frozen --running)
--frozen Liste seulement les conteneurs gelés
--running Liste seulement les conteneurs en cours de fonctionnement
--stopped Liste seulement les conteneurs stoppés
-f, --fancy Utilise une sortie fantaisie, en colonnes
-F, --fancy-format Liste séparé par des "," de colonnes à afficher dans la sortie fancy. La liste des champs accèpté est: name, state, ipv4, ipv6, autostart, pid, memory, ram, swap
--nesting Affiche les conteneurs imbriqués
filter (regex) Le filtre spécifié sera appliqué au nom du conteneur.

Exemples

Liste tous les conteneurs, un par ligne avec nom, état, adresse ipv4 et ipv6
lxc-ls --fancy
Lister tous les conteneurs actifs et affiche la liste dans une colonne
lxc-ls --active -1
^
14 octobre 2014

htmlpdflatexmanmd




lxc-console

lxc-console

Lance une console permettant de se logger dans le conteneur

   Si le service tty a été configuré et est disponible pour le conteneur spécifié comme paramètre, cette commande va lancer une console permettant de se logger dans le conteneur.

OPTIONS

[escape character] Spécifie le préfixe de séquence d'échappement à utiliser au lieu de ‹ctrl a›.
-t [ttynum] Spécifie le tty à utiliser
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
14 octobre 2014

htmlpdflatexmanmd




lxc-monitor

lxc-monitor

Supervise l'état des conteneurs spécifiques

OPTIONS

-Q, --quit quitte immédiatement s'il n'a pas de client au lieu d'attendre 30 secondes
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Superviser les états du conteneur foo
lxc-monitor -n foo
Superviser les états des conteneurs foo et bar
lxc-monitor -n 'foo|bar'
Superviser les états des conteneurs dont le nom commence avec 'f' ou 'b'
lxc-monitor -n '[f|b].*'
Superviser les états de tous les conteneurs
lxc-monitor -n '.*'
^
14 octobre 2014

htmlpdflatexmanmd




lxc-checkpoint

lxc-checkpoint

Vérifie le conteneur et dump son état dans un fichier.

OPTIONS

-S, --statefile=FILE Écrit l'état du conteneur dans cet fichier. est exclusif avec --statefd
-d, --statefd=FD Écrit l'état du conteneur dans le descripteur de fichier
-k, --kill Tue le conteneur après vérification. Les processus reçoivent un SIGKILL. est exclusif avec --pause
-p, --pause Mais le conteneur en pause avec la vérification
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Démarre un nouveau conteneur 123 calculant les décimales de pi:
lxc-execute -n 123 -- pi1 -d 500000
lxc-execute --name=123 -- pi1 -d 500000
pour checkpoint ce même conteneur en mode dump-death:
lxc-checkpoint -n 123 -S /share/123/chkpt1 -k
lxc-checkpoint --name=123 --statefile=/share/123/chkpt1 -k
pour vérifier le même conteneur et le mettre en pause:
lxc-checkpoint -n 123 -S /share/123/chkpt1 -p
lxc-checkpoint --name=123 -S /share/123/chkpt1 -p
^
14 octobre 2014

htmlpdflatexmanmd




lxc-cgroup

lxc-cgroup

Gère le cgroup associé avec un conteneur

OPTIONS

state-object Spécifie le state object name
[value] Spécifie la valeur à assigner au state-object
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Afficher les périphériques permis:
lxc-cgroup -n foo devices.list
Assigner les processeurs 0 et 3 au conteneur:
lxc-cgroup -n foo cpuset.cpus "0,3"
^
14 octobre 2014

htmlpdflatexmanmd




lxc-halt

lxc-halt

Arrête un conteneur sans terminer les processus. Fournis un switch au runlevel 0 dans le conteneur

OPTIONS

CONTAINER Spécifie le conteneur.
^
14 octobre 2014

htmlpdflatexmanmd




lxc-attach

lxc-attach

Lance un processus dans un conteneur en cours d'exécution

OPTIONS

-a, --arch Spécifie l'architecture. Accèpte les même paramètres que l'option lxc.arch.
-e, --elevated-privileges Ne supprime pas les privilège en exécutant la commande dans le conteneur. Le nouveau processus ne sera pas ajouté au cgroup du conteneur et ses capabilities ne seront pas supprimé avant l'exécution.
-s, --namespaces Spécifie l'espace de nom à attacher, en liste pipé, ex: NETWORK|IPC. MOUNT, PID, UTSNAME, IPC, USER, NETWORK. Implique -e
-R, --remount-sys-proc$ force à remonter /proc et /sys pour refléter les contextes d'espace de nom courant.
--keep-env Conserve l'environnement courant pour les programmes attachés. Mode par défaut, mais va changer dans le future à cause de fuites d'informations dans le conteneur.
--clear-env Efface l'environnement avant d'attacher.
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Pour ajouter un nouveau shell dans un conteneur existant:
lxc-attach -n container
Pour redémarrer le service cron d'un container existant:
lxc-attach -n container -- /etc/init.d/cron restart
Désactiver eth1 d'un conteneur qui n'a pas la capability NET_ADMIN:
lxc-attach -n container -e -- /sbin/ip link delete eth1
ou utiliser -s pour utiliser les outils installés sur l'hôte en dehors du conteneur:
lxc-attach -n container -s NETWORK -- /sbin/ip link delete eth1
^
11 octobre 2014

htmlpdflatexmanmd




lxc-kill

lxc-kill

Envoie un signal au process 1 du conteneur. si utilisé sur une application lancée par lxc-execute, lxc-init le forward au pid 2

OPTIONS

--name=NAME SIGNUM Envoie SIGNUM au premier processus du conteneur
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

envoie le signal 26 au process pi1 dans le conteneur 123:
lxc-execute -n 123 -- pi1 -d 500000
lxc-kill --name=123 26
^
11 octobre 2014

htmlpdflatexmanmd




lxc-wait

lxc-wait

Attend un état de conteneur spécifique avant de se terminer

OPTIONS

-s states Spécifier l’état du conteneur
-t timeout attend timeout secondes pour l'état désiré
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Quitte quand RUNNING est atteind:
lxc-wait -n foo -s RUNNING
Quitte quand RUNNING ou STOPPED est atteind:
lxc-wait -n foo -s 'RUNNING|STOPPED'
^
11 octobre 2014

htmlpdflatexmanmd




lxc-stop

lxc-stop

Arrêter une application dans un conteneur

OPTIONS

-r, --reboot Redémarre de conteneur
-k, --kill Tue toutes les tâches dans le conteneur au lieu de les terminer proprement
--nokill termine les tâches proprement, mais ne détruit pas le conteneur
--nolock Évite l'utilisation d'un lxc locking, et devrait être utilisé seulement si lxc-stop est bloqué à cause d'un mauvais état système.
-W, --nowait effectue l'action demandé et quitte
-t, --timeout TIMEOUT attend TIMEOUT secondes avec de détruit brutalement le conteneur

Codes de sortie

0 Le conteneur a été stoppé avec succès
1 Un erreur s'est produite en stoppant le conteneur
2 Le conteneur spécifié existe mais n'est pas en cours de fonctionnement
^
11 octobre 2014

htmlpdflatexmanmd




lxc-start

lxc-start

Lance une application dans un conteneur. Les processus et groupes de processus orphelin ne sont pas supportés avec cette commande, utiliser lxc-execute à la place.

OPTIONS

-d, --daemon Lance en tâche de fond
-p, --pidfile Crée un fichier avec le process id spécifié
-f, --rcfile config_file Fichier de Configuration pour le conteneur
-c, --console console-device spécifie un device à utiliser pour la console du conteneur, ex. /dev/tty8. Par défaut, utilise le terminal courant.
-L, --console-log console-logfile Spécifie un fichier pour logger la sortie de la console du conteneur.
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-c, --close-all-fds Si un des descripteurs de fichier est hérité, le ferme. -d implique -c
--share-net name|pid hérite un espace de nom réseau. Il continuera d'être géré pas son propriétaire original. La configuration réseau dans ce conteneur est ignorée et les scripts up/down ne sont pas exécutés.
--share-ipc name|pid Hérite d'un espace de nom IPC
--share-uts name|pid Hérite d'un espace de nom UTS
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
11 octobre 2014

htmlpdflatexmanmd




lxc-execute

lxc-execute

Lance une application dans un conteneur via un processus intermédiaire lxc-init qui aura le pid 1. lxc-init est conçu pour forwarder les signaux à la commande lancée.

OPTIONS

-f, --rcfile config_file Spécifie le fichier de configuration pour le conteneur
-s, --define KEY=VAL Permet d'assigner des variables supplémentaires
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
10 octobre 2014

htmlpdflatexmanmd




lxc-unfreeze

lxc-unfreeze

Résume les processus d’un conteneur

OPTIONS

-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
10 octobre 2014

htmlpdflatexmanmd




lxc-freeze

lxc-freeze

Met en pause les processus d'un conteneur

OPTIONS

-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
10 octobre 2014

htmlpdflatexmanmd




lxc-restart

lxc-restart

Redémarre un conteneur depuis un fichier.

OPTIONS

-S, --state-file=FILE Lit l'état du conteneur dans le fichier
-d, --statefd=FD Lit l'état du conteneur dans le descripteur de fichier
-p Met le conteneur en pause après l'avoir redémarré
-f, --rcfile=config_file Spécifie le fichier de configuration pour l'isolation du conteneur.
-s KEY=VAL Assigne la valeur VAL à la variable KEY.
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié

Exemples

Démarre un nouveau conteneur 123 calculant les décimales de pi:
lxc-execute -n 123 -- pi1 -d 500000
lxc-execute --name=123 -- pi1 -d 500000
pour checkpoint ce même conteneur en mode dump-death:
lxc-checkpoint -n 123 -S /share/123/chkpt1 -k
lxc-checkpoint --name=123 --statefile=/share/123/chkpt1 -k
Et pour le redémarrer avec un id différent:
lxc-restart -n 200 -S /share/123/chkpt1
lxc-restart --name=200 --statefile=/share/123/chkpt1
^
10 octobre 2014

htmlpdflatexmanmd




lxc-destroy

lxc-destroy

Supprimer un conteneur

OPTIONS

-f Si un conteneur est un cour de fonctionnement, l'arrête avant.
-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
^
10 octobre 2014

htmlpdflatexmanmd




lxc-create

lxc-create

Créer un objet système où sont stockés les informations de configuration et utilisateur

   L'objet est un répertoire crée dans/var/lib/lxc et identifié par son nom.

OPTIONS

-f config_file Spécifie le fichier de configuration
-t template Raccourci vers ur scrite lxc-template.
-B backingstore vaut dir, lvm, loop, btrfs, best

        dir (défaut) signifie que le système racine du conteneur sera un répertoire sous /var/lib/lxc/container/rootfs.
        btrfs le système racine doit être btrfs, et le conteneur sera crée dans un nouveau volume. Cela permet de créer des clones
        lvm un périphérique block lvm sera utilisé et les options disponible sont --lvname --vgname --thinpool --fstype et --fssize
        best lxc tente dans l'ordre: btrfs, zfs, lvm, dir.

-P, --lxcpath=PATH Utilise un chemin alternatif (défaut: /var/lib/lxc)
-o, --logfile=FILE log dans le fichier spécifié (défaut: pas de log)
-l, --logpriority=LEVEL Priorité des log
-n, --name=NAME Utilise identifiant de conteneur spécifié
^
30 juin 2013

htmlpdflatexmanmd




lxc

lxc

Présentation

Les options suivantes doivent être présentes dans le kernel:
    * General setup
    * Control Group support
-› Namespace cgroup subsystem
-› Freezer cgroup subsystem
-› Cpuset support
-› Simple CPU accounting cgroup subsystem
-› Resource counters
-› Memory resource controllers for Control Groups
    * Group CPU scheduler
-› Basis for grouping tasks (Control Groups)
    * Namespaces support
-› UTS namespace
-› IPC namespace
-› User namespace
-› Pid namespace
-› Network namespace
    * Device Drivers
    * Character devices
-› Support multiple instances of devpts
    * Network device support
-› MAC-VLAN support
-› Virtual ethernet pair device
    * Networking
    * Networking options
-› 802.1d Ethernet Bridging
    * Security options
-› File POSIX Capabilities

Spécifications

   Un conteneur est un objet où la configuration est persistante. L'application est lancée dans ce conteneur et va utiliser cette configuration. Quand un processus est lancé, le conteneur est lancé. Quand le dernier processus dans le conteneur se termine, le conteneur est stoppé. Le conteneur peut être volatile, c'est à dire créé directement avec un fichier de configuration.
^
15 juin 2013

htmlpdflatexmanmd




cgrulesengd

cgrulesengd

Service qui distribue les processus aux cgroups

   Quand un process change sont uid/gid effectif, il inspecte la liste des règles depuis cgrules.conf et place le processus dans le cgroup approprié. Le fichier est lu au lancement et peut être rechargé via SIGUSR2.

OPTIONS

-f ‹path›, --logfile=‹path› Écrit les logs dans le fichier donné
-s[facility], --syslog=[facility] logging facility
-n, --nodaemon Ne lance pas en tâche de fond
-v, --verbose mode verbeux
-q, --quiet mode silencieux
-Q, --nolog Désactive les logs
-d, --debug idem à -nvvf
-u ‹user›, --socket-user=‹user›
-g ‹group›, --socket-group=‹group› Définis le propriétaire du socket cgrulesengd. Assume que cgexec tourne avec les permissions suid adéquat pour qu'il puisse écrire dans ce socket quand --sticky est utilisé
^
15 juin 2013

htmlpdflatexmanmd




cgconfigparser

cgconfigparser

Définis le système de fichier de cgroup

OPTIONS

-l, --load=FILE Parse le fichier de configuration des cgroups définis le système de fichier du cgroup et monte les points de montage définis. Peut être spécifié plusieurs fois
-L, --load-directory=DIR Trouve tous les fichiers dans un répertoire et les parses dans l'ordre alphabétique. Peut être spécifié plusieurs fois
-a ‹agid›:‹auid› Définis le propriétaire par défaut des fichiers de cgroup définis. Ces utilisateurs sont autorisés à définir les paramètres du sous-système et créer des cgroups
-d, --dperm=mode Définis les permissions par défaut d'un répertoire cgroup
-f, --fperm=mode définis les permissinos par défaut des fichiers du cgroup
-s, --tperm=mode Définis les permissions par défaut du fichier tasks du cgroup
-t ‹tuid›:‹tgid› Définis le propriétaire du fichier tasks du cgroup
^
15 juin 2013

htmlpdflatexmanmd




lssubsys

lssubsys

Liste les hiérarchies contenant le sous-système donné

OPTIONS

controller Définis le sous-système dont la hiérarchie est affichée.
-m, --mount-points Affiche les points de montage. seul le premier point de montage des hiérarchies sont affichées
-M, --all-mount-points Affiche tous les points de montage
-a, --all Affiche tous les sous-systèmes, incluant ceux non montés
-i, --hierarchies Affiche le nombre de hiérarchie attachées si le sous-système est dans une hiérarchie
^
15 juin 2013

htmlpdflatexmanmd




cgclassify

cgclassify

Déplace un tâche dans le cgroup donné

OPTIONS

-g ‹controllers›:‹path› Définis le cgroup où placer la tâche
--sticky Avec cette option, cgred ne change pas les tâches enfant avec les droits du cgroups basé dans cgrules.conf
--cancel-sticky cgred peut automatiquement changer le pidlot et leur tâche enfant dansle bon cgroup basé sur /etc/cgrules.conf
^
15 juin 2013

htmlpdflatexmanmd




cgsnapshot

cgsnapshot

Génère des fichier de configuration pour les contrôleurs donnés

OPTIONS

-b file Affiche seulement les variables depuis la blacklist (défaut: /etc/cgsnapshot_blacklist.conf) ce fichier contient toutes les variables qui devraient être ignorés
-f, --file Redirige la sortie dans le fichier
-s, --silent Ignore toutes les alertes
-t, --strict N(affiche pas les variables qui ne sont pas dans la whitelist (défaut: /etc/cgsnapshot_whitelist)
-w file Définis le fichier blacklist
controller Définis le contrôleur dont les hiérarchies seront affichés
^
15 juin 2013

htmlpdflatexmanmd




cgexec

cgexec

Lance la tâche dans le cgroup donné

OPTIONS

-g ‹controllers›:‹path› Définis le cgroup dans lequel la tâche va se lancer.
--sticky Avec cette option, cgred ne change pas les tâches enfant avec les droits du cgroups basé dans cgrules.conf

Exemples

lance ls dans le cgroup test1 dans tous les contrôleurs montés
cgexec -g *:test1 ls
Lance ls -l dans le cgroup test1 dans les contrôleurs cpu et memory
cgexec -g cpu,memory:test1 ls -l
lance ls -l dans le cgroup test1 dans les contrôleurs cpu et memory et le cgroup test1 dans le contrôleur swap
cgexec -g cpu,memory:test1 -g swap:test2 ls -l
^
15 juin 2013

htmlpdflatexmanmd




cgget

cgget

Affiche les paramètres des cgroups donnés

OPTIONS

‹path› Le nom du cgroup à lire.Peut être spécifié plusieurs fois
-a, --all Affiche les variables de tous les contrôleurs.
-g ‹controller› Défnis le contrôleur dont la valeur est à afficher
N'affiche pas les en-têtes
-r, --variable ‹name› Paramètre à afficher. Peut être spécifié plusieurs fois
-v, --values-only Affiche seulement les valeurs.

Exemples

cgget -r cpuset.cpus -r cpuset.mems first second
first:
cpuset.cpus=0-1
cpuset.mems=0
second:
cpuset.cpus=0
cpuset.mems=0
cgget -n -r cpuset.cpus -r cpuset.mems first second
cpuset.cpus=0-1
cpuset.mems=0
cpuset.cpus=0
cpuset.mems=0
cgget -nv -r cpuset.cpus -r cpuset.mems first second
0-1
0
0
0
cgget -n -g cpu /
cpu.rt_period_us=1000000
cpu.rt_runtime_us=950000
cpu.shares=1024
^
15 juin 2013

htmlpdflatexmanmd




cgset

cgset

Définis les paramètres des cgroups donnés

OPTIONS

‹path› Nom du cgroup à changer. Peut être spécifié plusieurs fois
-r ‹name=value› Le nom du fichier et la valeur à écrire dans ce fichier. Peut être spécifie plusieurs fois
-copy-from ‹source_cgroup_path› Définis le nom du cgroup d'où copier les paramètres
^
15 juin 2013

htmlpdflatexmanmd




cgconfig.conf

cgconfig.conf

Fichier de configuration utilisé par libcgroup

   Fichier de configuration utilisé par libcgroup pour définir les cgroups, leur paramètres et leur points de montage. Il consiste de sections mount, group et default.

la section mount a la forme:
mount {
    ‹controller› = ‹path›
    ...
}

   où controller est le nom du sous-système. Une hiérarchie nommée peut être spécifiée comme contrôleur avec "name=‹somename›". path, le chemin où la hiérarchie cgroup associée devrait être montée.

La section group a la forme:
group ‹name› {
    [permissions]
    ‹controller› {
        ‹param name› = ‹param value›
        ...
    }
...
}

name Nom du cgroup. le cgroup root est toujours créé automatiquement. Il peut être spécifié dans ce fichier de configuration en utilisant '.' comme nom de cgroup
permissions Les permissions du cgroup. root a toujous les permissions de faire tout avec les cgroups Ils ont la syntaxe suivante:


perm {
    task {
        uid = ‹task user›
        gid = ‹task group›
        fperm = ‹file permissions›
    }
    admin {
        uid = ‹admin name›
        gid = ‹admin group›
        dperm = ‹directory permissions›
        fperm = ‹file permissions›
    }
}

task user/group Nom de l'utilisateur et du group propriétaire du fichier tasks du cgroup
admin user/group Nom de l'utilisateur et du group propriétaire des autres fichiers du cgroup
controller Nom du sous-sytème kernel. Permet de spécifier le nom du fichier à définir et sa valeur

La section default a la forme:
default {
    perm {
        task {
            uid = ‹task user›
            gid = ‹task group›
            fperm = ‹file permissions›
        }
        admin {
            uid = ‹admin name›
            gid = ‹admin group›
            dperm = ‹directory permissions›
            fperm = ‹file permissions›
        }
    }
}

   Cette section a la même forme que la section group

Exemples

Exemple 1:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpu;
}

Créé la hiérarchie contrôlée par 2 sous-sytèmes. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu

Exemple 2:
mount {
    cpu = /mnt/cgroups/cpu;
    "name=scheduler" = /mnt/cgroups/cpu;
    "name=noctrl" = /mnt/cgroups/noctrl;
}
group daemons {
    cpu {
        cpu.shares = "1000";
    }
}
group test {
    "name=noctrl" {
    }
}

Créé 2 hiérarchies. une 'scheduler' contrôlée par le sous-système cpu avec le group daemons en enfant. L'autre est nommée noctrl sans contrôleur, avec un groupe test. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,name=scheduler cpu /mnt/cgroups/cpu
mount -t cgroup -o none,name=noctrl none /mnt/cgroups/noctrl
mkdir /mnt/cgroups/cpu/daemons
echo 1000 › /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/noctrl/tests

Exemple 3:
    mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpu;
}
    
group daemons/www {
    perm {
        task {
            uid = root;
            gid = webmaster;
            fperm = 770;
        }
        admin {
            uid = root;
            gid = root;
            dperm = 775;
            fperm = 744;
        }
    }
    cpu {
        cpu.shares = "1000";
    }
}
    
group daemons/ftp {
    perm {
        task {
            uid = root;
            gid = ftpmaster;
            fperm = 774;
        }
        admin {
            uid = root;
            gid = root;
            dperm = 755;
            fperm = 700;
        }
    }
    cpu {
        cpu.shares = "500";
    }
}

Créer la hiérarchie contrôllée par 2 sous-système avec un group et 2 sous-groupes. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpu/daemons/www
chown root:root /mnt/cgroups/cpu/daemons/www/*
chown root:webmaster /mnt/cgroups/cpu/daemons/www/tasks
echo 1000 › /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/cpu/daemons/ftp
chown root:root /mnt/cgroups/cpu/daemons/ftp/*
chown root:ftpmaster /mnt/cgroups/cpu/daemons/ftp/tasks
echo 500 › /mnt/cgroups/cpu/daemons/ftp/cpu.shares

Exemple 4:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpuacct;
    }
    
group daemons {
    cpuacct{
    }
    cpu {
    }
}

Créé 2 hiérarchies et un group commun Correspond à:
mkdir /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpuacct
mount -t cgroup -o cpu cpu /mnt/cgroups/cpu
mount -t cgroup -o cpuacct cpuacct /mnt/cgroups/cpuacct
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpuacct/daemons

Exemple 5:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpuacct;
}
    
group daemons {
    cpuacct{
    }
}
    
group daemons/www {
    cpu {
        cpu.shares = "1000";
    }
}
    
group daemons/ftp {
    cpu {
        cpu.shares = "500";
    }
}

Créé 2 hiérarchies avec quelqes groupes dedans. un de ces groupes est créé dans les 2 hiérarchies. Correspond à:
mkdir /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpuacct
mount -t cgroup -o cpu cpu /mnt/cgroups/cpu
mount -t cgroup -o cpuacct cpuacct /mnt/cgroups/cpuacct
mkdir /mnt/cgroups/cpuacct/daemons
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpu/daemons/www
echo 1000 › /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/cpu/daemons/ftp
echo 500 › /mnt/cgroups/cpu/daemons/ftp/cpu.shares

Exemple 6:
mount {
    cpu = /mnt/cgroups/cpu;
    cpuacct = /mnt/cgroups/cpu;
}
    
group . {
    perm {
        task {
            uid = root;
            gid = operator;
        }
        admin {
            uid = root;
            gid = operator;
        }
    }
    cpu {
    }
}
    
group daemons {
    perm {
        task {
            uid = root;
            gid = daemonmaster;
        }
        admin {
            uid = root;
            gid = operator;
        }
    }
    cpu {
    }
}

Créé la hiérarchie contrôlée par 2 sous-sytèmes avec un groupe ayant des permissions spéciales. Correspond à:
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu
chown root:operator /mnt/cgroups/cpu/*
chown root:operator /mnt/cgroups/cpu/tasks
mkdir /mnt/cgroups/cpu/daemons
chown root:operator /mnt/cgroups/cpu/daemons/*
chown root:daemonmaster /mnt/cgroups/cpu/daemons/tasks
^
15 juin 2013

htmlpdflatexmanmd




cgred.conf

cgred.conf

Fichier de configuration de service cgred

   Fichier de configuration de service cgred de libcgroup. Contient des valeurs interne.

CONFIG_FILE Spécifie le fichier de configuration pour le service cgred
LOG_FILE Spécifie le fichier de log (défaut: envoie à syslog)
NODAEMON Equivalent à --nodaemon
LOG Niveau de verbosité (-v, -vv, -q ou --nolog)

^
15 juin 2013

htmlpdflatexmanmd




cgrules.conf

cgrules.conf

Fichier de configuration de libcgroup

   Fichier de configuration de libcgroup. Définis les cgroups à traiter, contient une liste de règles qui assignent à un group/user définis un cgroup dans un sous-système ou cgroup dans un sous-système.

2 format sont possible:
‹user› ‹controllers› ‹destination›
‹user›:‹process name› ‹controllers› ‹destination›
où:

user peut être, un nom d'utilisateur, un @groupe, '*', '%' équivalent à "ditto"
process name options, un nom de processus ou un chemin vers une commande à trziter
controllers liste de contrôlleurs séparés par des ',' ou '*'
destination Chemin relatif d'une hiérarchie contrôleur ou:

        %U username
        %u UID
        %g group
        %g GID
        %p process
        %P PID

   La premère règle qui matche est exécutée

Exemples

Les processus des étudiants dans le sous-système devices appartiennent au cgroup /usergroup/students
student devices /usergroup/students
Quand les étudiants exécutent cp, les processus dans le sous-système devices appartiennent au cgroup /usergroup/students/cp
student:cpdevices /usergroup/students/cp
Les processus lancés par n'importe qui du groupe admin appartiennent au cgroup admingroup
@admin *admingroup/
Les tâche de Peter pour le contrôleur cpu appartiennent au cgroup test1.
peter cpu test1/
Les tâche de Peter pour le contrôleur memory appartiennent au cgroup test2.
% memory test2/
Tout processus appartient au cgroup default
* * default/
^
15 juin 2013

htmlpdflatexmanmd




cgclear

cgclear

Décharge un système de fichier cgroup

   sans options, place toutes les tâche dans les cgroups dans le cgroup root

OPTIONS

-l, --load=‹filename› Spécifie le fihcier de config à lire. Peut être spécifié plusieurs fois
-L, --load-directory=‹directory› Spécifie le répertoire qui est recherché dans les fihciers de configuration. Peut être spécifié plusieurs fois
-e  Seul les cgroups vides sont déchargés
^
15 juin 2013

htmlpdflatexmanmd




lscgroup

lscgroup

Liste tous les cgroups

OPTIONS

‹controllers›:‹path› Définis le cgroup et ses enfants à afficher, sinon affiche tous les cgroups
^
15 juin 2013

htmlpdflatexmanmd




cgcreate

cgcreate

Créer de nouveaux cgroups

OPTIONS

-a ‹agid›:‹auid› Définie le nom de l'utilisateur et du groupe propriétaire des fichiers de contrôle.
-d, --dperm=mode définisles permissions du répertoire cgroup.
-f, --fperm=mode Définis les permissions des paramètres du cgroup
-g ‹controllers›:‹path› Définis les cgroups à ajouter controllers est une liste de contrôleurs, et path le chemin relatif au cgroup dans la liste des contrôleurs donnés. Peut être spécifié plusieurs fois
-s, --tperm=mode Définis lespermissions du fichier tasks du cgroup
-t ‹tuid›:‹tgid› Définis le propriétaire et le groupe propriétaire du fichier tasks
^
15 juin 2013

htmlpdflatexmanmd




cgdelete

cgdelete

Supprime des cgroups

OPTIONS

‹controllers›:‹path› Définis le cgroup et ses enfants à supprimer
-r Supprime récursivement
^
11 juin 2013

htmlpdflatexmanmd




cgroup

cgroup

Présentation

   Les Control Groups fournissent un mécanisme pour agréger/partitionner des jeux de tâches, et tous les futures enfants, dans des groupes hiérarchiques.

   Un cgroup associe un jeu de tâches avec un jeu de paramètres pour un ou plusieurs sous-systèmes. un sous-système est un module qui utilise les facilités de groupement de tâches pour traiter ces groupes de tâche d'une manière particulière. un sous-système est typiquement un contrôleur de ressource.

   Une hiérarchie est un jeu de cgroups arrangée en arborescence, de manière à ce que chaque tâche dans le système soit dans exactement un cgroup dans la hiérarchie. Chaque hiérarchie a une instance du cgroup de système de fichier virtuel avec lui.

   Chaque tâche dans le système a un pointeur de référence vers un css_set. Un css_set contient un jeu de pointeur de référence vers des objets cgroups_subsys_state, un pour chaque cgroup enregistré dans le système.

   Un système de fichier hiérarchique de cgroup peut être monté pour le voir et le manipuler depuis l'espace utilisateur. On peut lister toutes les tâches attachées à un cgroup.

   Quand un cgroup est démonté, s'il y a des cgroups enfants, cette hiérarchie reste active. S'il n'y a pas de cgroups enfant, la hiérarchie est désactivé.

   Chaque tâche sous /proc a un fichier nommé cgroup affichant, pour chaque hiérarchie active, les noms des sous systèmes et le nom du cgroup.

   Chaque cgroup est représenté par un répertoire contenant les fichiers suivants:

tasks liste des tâches attachées au cgroup.
cgroup.procs liste des tgid dans ce cgroup.
notify_on_release Permet lorsque la dernière tâche d'un cgroup se termine et que le dernier cgroup enfant est supprimé, que le kernel lance une commande spécifiée dans le fichier release_agent
release_agent Le chemin à utiliser pour les notifications de release (existe dans le top cgroup uniquement)
cgroup.clone_children (0 ou 1) Tous les cgroups créés vont appeler post_clone pour chaque sous-système du nouveau cgroup. ce callback copie les valeurs du parent.
cgroup.event_control (0 ou 1) active l'exécution du release_agent
cpu planifie l'accès du cpu aux cgroup
cpu.shares Valeur entière de part relative du temps CPU disponible pour les tâches
cpu.rt_runtime_us Période en microsecondes contiguë la plus longue autorisé relative à rt_period_us
cpu.rt_period_us Période de temps en microsecondes de référence pour rt_runtime_us
cpuset Assigne des cpu et des nœud mémoire à des cgroups
cpuset.cpu_exclusive (0 ou 1) spécifie si des cpusets autres que celui-ci, des ses parents ou enfants peuvent partager les cpu spécifiés
cpuset.cpus Spécifie à quels CPU les tâches dans ce cgroup peuvent accéder
cpuset.mem_exclusive (0 ou 1) Spécifie si d'autre cpusets peuvent partager les nœuds de mémoire
cpuset.mem_hardwall (0 ou 1) Spécifie si les allocations au noyau de pages mémoire et données tampon sont restreintes aux nœuds mémoire spécifiés pour ce cpuset
cpuset.memory_migrate (0 ou 1) spécifie si une page en mémoire devrait migrer vers un nouveau nœud si les valeurs dans cpuset.mems changent
cpuset.memory_pressure Contient une moyenne de sollicitation de la mémoire des processus de ce cpuset. Est mis à jours lorsque memory_pressure_enabled est activé
cpuset.memory_pressure_enabled (0 ou 1) Spécifie si le système doit calculer la sollicitation mémoire (memory_pressure)
cpuset.memory_spread_page (0 ou 1) Spécifie si les tampons de système de fichier doivent être placés de manière régulières sur les nœuds mémoire alloués à ce cpuset
cpuset.memory_spread_slab (0 ou 1) Spécifie si les cache slab du noyau pour les opérations I/O doivent être placés de manière régulières sur le cpuset
cpuset.mems Spécifie les nœuds de mémoire auxquels les tâches de ce cgroup ont accès
cpuset.sched_load_balance (0 ou 1) Spécifie si le noyau va équilibrer les charges sur les CPU dans ce cpuset
cpuset.sched_relax_domain_level entier entre -1 et une valeur positive, représente la largeur de l'étendue des cpu sur laquelle le noyau va essayer d'équilibrer les charges. les valeurs sont:

        -1 Utilise la valeur par défaut du système pour l'équilibrage de charges
        0 Pas d'équilibrage de charge
        1 Équilibre immédiatement les charges sur les threads du même coeur
        2 Équilibre immédiatement les charges sur les coeurs du même chip
        3 Équilibre immédiatement les charges sur les CPU du même nœud ou la même lame
        4 Équilibre immédiatement les charges sur les CPU de même architecture NUMA
        5 Équilibre immédiatement les charges sur tous les CPU sur architecture NUMA

cpuacct Rapports automatiques sur les cpu utilisés
cpuacct.stat Rapporte le nombre de cycles CPU en unité USER_HZ pris par les tâches de ce cgroup et ses enfants dans le mode système
cpuacct.usage Rapporte le nombre de cycles CPU total en nanosecondes pris par les tâches de ce cgroup et enfants
cpuacct.usage_percpu Rapporte le nombre de cycles CPU total en nanosecondes sur chaque CPU pris par toutes les taches de ce cgroup et ses enfants
blkio Surveille et contrôle l'accès des tâches aux entrées/sorites sur des périphériques block
blkio.io_merged Rapporte le nombre de requêtes BIOS fusionnées en requêtes pour des opérations I/O
blkio.io_queued Rapporte le nombre de requêtes en file d'attente pour des opérations I/O
blkio.io_service_bytes Rapporte le nombre d'octets transférés depuis et vers des périphériques spécifiques
blkio.io_serviced Rapporte le nombre d'opérations I/O effectuées sur des périphériques spécifiques
blkio.io_service_time Rapporte le temps total pris par l'envoie de la demande et son achèvement pour les opérations I/O sur des périphériques spécifiques
blkio.io_wait_time Rapporte le temps total pour un service dans les files d'attentes des opération I/O sur des périphériques spécifiques
blkio.reset_stats Réinitialise les statistiques enregistrées
blkio.sectors Rapporte le nombre de secteurs transférés depuis/vers des périphériques spécifiques
blkio.time Rapporte le moment auquel un cgroup avait un accès I/O à des périphériques spécifiques, en ms
blkio.weight Poids relatif d'accès au block I/O (de 100 à 1000)
blkio.weight_device Poids relatif d'accès à des périphériques spécifiques au format majeur:minuer poid
blkio.avg_queue_size Rapporte la taille moyenne des files d'attente pour les opérations I/O
blkio.group_wait_time Rapporte la durée totale (en ns) q'un cgroup attendu une tranche de temps pour l'une de ses files d'attente
blkio.empty_time Rapporte la durée totale (en ns) qu'un cgroup a attendu sans requêtes en attente
blkio.idle_time Rapporte le temps totale (en ns) que le planification a passé à attendre un cgroup dans l'attente d'une meilleur requête que celles déjà dns les files d'attentes ou provenant d'autres cgroups (si CONFIG_DEBUG_BLK_CGROUP=y)
blkio.dequeue Rapporte le nombre de fois que des requêtes d'opérations I/O ont été retirés des files d'attentes par des périphériques spécifiques
net_cls repère les paquets réseau avec un ClassId
net_cls.classid valeur hexa indiquant un descripteur de contrôle du traffic
devices Autorise ou refuse l'accès aux périphériques dans un cgroup
devices.allow Spécifie à quels périphériques les tâches du cgroup peuvent accéder. Chaque entrée possède 4 champs : type (a, b ou c), majeur, mineur et accès (r, w, m : autorise à créer des fichiers de périphériques qui n'existent pas encore)
devices.deny Spécifie les périphériques que le cgroup n'a pas accès
devices.list Rapporte les périphériques pour lesquels les contrôles d'accès ont été définis pour ce cgroup
freezer suspend ou réactive les tâches dans un cgroup
freezer.state FROZEN (les tâches dans le cgroup sont suspendues), FREEZING ( le système est en train de suspendre les tâches dans le cgroup), THAWED (les tâches dans le cgroup sont réactivées)
perf_event Monitoring par cpu. (voir perf)
ns permet de grouper les processus dans des espaces de nom séparés
memory
memory.stat reporte des statistiques de mémoire:

        cache Cache de la page, inclut tmpfs (shmem), en octets
        rss caches swap et anonyme, n'inclut pas tmpfs (shmem), en octets
        mapped_file taille des fichiers mappés en mémoire, inclut tmpfs (shmem), en octets
        pgpgin nombre de pages chargées en mémoire
        pgpgout nombre de pages renvoyées de la mémoire
        swap usage swap, en octets
        active_anon caches swap et anonyme de la liste des LRU (dernier récemment utilisé) actifs, inclut tmpfs (shmem), en octets
        inactive_anon caches swap et anonyme de la liste des LRU (dernier récemment utilisé) inactifs, inclut tmpfs (shmem), en octets
        active_file mémoire sauvegardée sur fichier de la liste des LRU actifs, en octets
        inactive_file mémoire sauvegardée sur fichier de la liste des LRU inactifs, en octets
        unevictable mémoire ne pouvant pas être récupérée, en octets
        hierarchical_memory_limit limite de la mémoire pour la hiérarchie contenant le groupe de contrôle memory, en octets
        hierarchical_memsw_limit limite de la mémoire plus le swap pour la hiérarchie contenant le groupe de contrôle memory, en octets

memory.usage_in_bytes Rapporte l'utilisation mémoire total actuelle en octets
memory.memsw.usage_in_bytes Rapporte la somme de l'utilisation de la mémoire et de l'espace swap
memory.max_usage_in_bytes Rapporte le montant max e mémoire utilisée
memory.memsw.max_usage_in_bytes Rapporte la somme totale de mémoire et swap utilisé
memory.limit_in_bytes Définis la mémoire max utilisateur incluant le cache (-1 pas de limite)
memory.memsw.limit_in_bytes mémoire et swap max (-1 pas de limite)
memory.failcnt Rapporte le nombre de fois que la limite mémoire est atteinte (memory.limit_in_bytes)
memory.memsw.failcnt Rapporte le nombre de fois que la limite mémoire est atteinte (memory.memsw.limit_in_bytes)
memory.force_empty Vide la mémoire de toutes les pages utilisée lorsque défini à 0. uniquement quand aucune tâche n'est présente
memory.swappiness Définis la tendance du noyau à déloger la mémoire plutôt que de réclamer des pages depuis le cache de page (idem à /proc/sys/vm/swappiness)
memory.use_hierarchie (0 ou 1) spécifie si la mémoire utilisée devrait être prise en comptes sur une hiérarchie de cgroup, à 0, le sous-système ne récupère pas la mémoire d'une tâche enfant.

   Les nouveaux cgroups sont créé en utilisant l'appel système mkdir. les propriétés d'un cgroup sont modifiés en écrivant dans le fichier approprié dans ce cgroup.

Utiliser les cgroups

monter une hiérarchie cgroup:
mount -t tmpfs cgroup_root /sys/fs/cgroup
ajouter le sous-système cpuset:
mount -t cgroup cpuset -ocpuset /sys/fs/cgroup/cpuset
ajouter cpuset et memory:
mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1
Changer de jeu de sous-systèmes:
mount -o remount,cpuset,blkio hier1 /sys/fs/cgroup/rg1
Spécifier le release_agent de la hiérarchie:
mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" xxx /sys/fs/cgroup/rg1
Changer la valeur du release_agent:
echo "/sbin/new_release_agent" › /sys/fs/cgroup/rg1/release_agent
Attacher une tâche à un cgroup:
echo `pidof bash` › tasks
^
23 mai 2010

htmlpdflatexmanmd




Signaux - présentation

Signaux - présentation

Introduction aux signaux sous linux

   Ceci est une présentation très sommaire des signaux sous linux, je ne détail ici que les signaux standard. Linux supporte supporte à la fois les signaux POSIX classiques ("signaux standards") et les signaux POSIX temps-réel. Chaque signal a une disposition courante, qui détermine comment le processus agit quand il reçoit le signal. Les entrées dans la colonne action des tables ci-dessous spécifient la disposition par défaut pour chaque signal:

Term L'action par défaut est de terminer le processus
Ign L'action par défaut est d'ignorer le signal
Core L'action par défaut est de termine le processus et dumper le core
Stop L'action par défaut est de stopper le processus
Cont L'action par défaut est de continuer un processus qui est stoppé.

   Un processus peut changer la disposition d'un signal. La disposition d'un signal est un attribut par processus : dans une application multi-thread, la disposition d'un signal particulier est le même pour tous les thread.

Signaux standard

Linux supporte les signaux standard ci-dessous. De nombreux signaux dépendent de l'architecture.
Signal_____Valeur_____Action_____Commentaire
SIGHUP_______1________Term_______Raccrochement (déconnexion) sur terminal de contrôle, ou mort du processus de contrôle
SIGINT_______2________Term_______Interruption depuis le clavier.
SIGQUIT______3________Core_______Demande 'Quitter' depuis le clavier.
SIGILL_______4________Core_______Instruction illégale.
SIGABRT______6________Core_______Signal d'arrêt depuis abort(3).
SIGFPE_______8________Core_______Erreur mathématique virgule flottante.
SIGKILL______9________Term_______Signal 'KILL'.
SIGSEGV_____11________Core_______Référence mémoire invalide.
SIGPIPE_____13________Term_______Ecriture dans un tube sans lecteur.
SIGALRM_____14________Term_______Temporisation alarm(2) écoulée.
SIGTERM_____15________Term_______Signal de fin.
SIGUSR1_____10________Term_______Signal utilisateur 1.
SIGUSR2_____12________Term_______Signal utilisateur 2.
SIGCHLD_____17________Ign________Fils arrêté ou terminé.
SIGCONT_____18________Cont_______Continuer si arrêté.
SIGSTOP_____19________Stop_______Arrêt du processus.
SIGTSTP_____20________Stop_______Stop invoqué depuis tty.
SIGTTIN_____21________Stop_______Lecture sur tty en arrière-plan.
SIGTTOU_____22________Stop_______Ecriture sur tty en arrière-plan.

D'autres signaux divers


Signal_____Valeur_____Action_____Commentaire
SIGBUS_______7_________Core_______Erreur de Bus.
SIGPOLL________________Term_______Synonyme de SIGIO (System V).
SIGPROF_____27_________Term_______Profile alarm clock.
SIGSYS_________________Core_______Mauvais argument de routine (SVID).
SIGTRAP______5_________Core_______Trace/breakpoint trap
SIGURG______23_________Ign________Condition urgente sur socket (4.2 BSD).
SIGVTALRM___26_________Term_______Alarme virtuelle (4.2 BSD).
SIGXCPU_____24_________Core_______Limite de temps CPU dépassée (4.2 BSD).
SIGXFSZ_____25_________Core_______Taille de fichier excessive (4.2 BSD).
SIGIOT_______6_________Core_______Arrêt IOT. Un synonyme de SIGABRT.
SIGEMT_________________Term_______
SIGSTKFLT___16_________Term_______Erreur de pile sur coprocesseur.
SIGIO_______29_________Term_______E/S à nouveau possible(4.2 BSD).
SIGCLD_________________Ign________Synonyme de SIGCHLD.
SIGPWR______30_________Term_______Chute d'alimentation (System V).
SIGINFO___________________________Synonyme de SIGPWR
SIGLOST________________Term_______Perte de verrou de fichier.
SIGWINCH____28_________Ign________Fenêtre redimensionnée (4.3 BSD, Sun).
SIGUNUSED___31_________Term_______Signal inutilisé.

   Note: La valeur correspond aux architectures ia32, ia64, ppc s390 arm et sh

Signaux temps réel

   Linux supporte 32 signaux temps réels, numérotés de 33 à 64. À la différence des signaux standard, les signaux temps réels n'ont pas de signification prédéfinis, ils sont définis par les applications.
^
23 mai 2010

htmlpdflatexmanmd




kill

kill

Envoyer un signal à un processus

   Le signal par défaut est TERM. Utiliser -l ou -L pour une liste possible de signaux. Les signaux particulièrement utiles sont HUP, INT, KILL, STOP, CONT, et 0. Les signaux peuvent être spécifiés de 3 manières différentes. -9 -SIGKILL -KILL. Les valeur de PID négatives peuvent être utilisés pour choisir les groupes de processus; voir la colonne PGID de la commande ps. Un PID de -1 est spécial; il indique tous les processus excepté le processus kill lui-même et init.

Quelques signaux


Nom_____Num_____Action_____Description
0________0_______n/a________Code de sortie indiquant si un signal peut être envoyé.
ALRM____14_______exit_______
HUP______1_______exit_______
INT______2_______exit_______
KILL_____9_______exit_______Ne peut pas être bloqué
PIPE____13_______exit_______
TERM____15_______exit_______
STOP_____________stop_______Ne peut pas être bloqué
CONT_____________restart____Continue si stoppé, sinon ignore
QUIT_____3_______core_______
TRAP_____5_______core_______

   Note: Le shell peut avoir une commande kill intégré.

Exemples

kill -9 -1
tue tous les processus que vous pouvez tuer
kill -l 11
Traduit le nombre 11 en nom de signal
kill -L
Liste les signaux
kill 123 543 2341 3453
Envoie le signal par défaut à ces processus
^
23 mai 2010

htmlpdflatexmanmd




killall

killall

Tuer tous les processus

   killall tue les processus par nom. Il envoie un signal à tous les processus (SIGTERM par défaut) spécifiés. Les signaux peuvent être spécifiés par nom, par numéro ou par l'option -s. Si le nom spécifié n'est pas un expression régulière et contient un "/", les processus exécutant ce fichier seront tués, indépendamment de leur nom.

OPTIONS

-e, --exact Requière le nom exacte, mais ne gère que 15 caractères max.
-I, --ignore-case insensible à la casse
-g, --process-group Tue le groupe de processus auquel le processus appartient. Le signal est envoyé une seule fois par groupe.
-i, --interactive demande confirmation avant de tuer.
-l, --liste Liste les noms de signaux.
-q, --quiet n'affiche rien si aucun processus n'a été tué
-r, --regexp Utiliser les regex pour trouver les processus à tuer
-s, --signal envoie le signal spécifié aux processus
-u, --user Tue uniquement les processus appartenant à user
-v, --verbose mode verbeux
-w, --wait Attend que tous les processus soit tués. killall vérifie une fois par seconde.
-Z, --context (SELinux uniquement) spécifie le contexte de sécurité : tue uniquement les processus ayant un contexte de sécurité particulier.
^
23 mai 2010

htmlpdflatexmanmd




pkill

pkill, pgrep

Chercher-envoyer un signal

pgrep cherche dans les processus en cours et affiche leur ID, en fonctions de critères.
pkill envoie un signal (SIGTERM par défaut) au processus au lieu de les lister.

OPTIONS

-c supprime la sortie normale, affiche à la place un compteur de processus correspondant
-d delimiter Définit la chaîne utilisé pour délimiter chaque ID dans la sortie (par défaut un newline)
-f le motif correspond à la ligne de commande
-g seul les processus dont l'id du groupe de processus correspondant sont listés.
-G seul les processus dont l'id du groupe réel correspondant sont listés.
-l liste le nom du processus et son ID
-n  Liste l'ID du plus récent processus correspondant
-o Liste le plus ancien processus correspondant
-P seul les processus dont l'ID du processus parent correspondant sont listés
-s Seul les processus appartenant à l'ID de session correspondant sont listés
-t seul les processus contrôlé par l'id du terminal correspondant sont listés
-u Seul les processus appartenant à l'ID utilisateur effectif correspondant sont listés.
-U Seul les processus appartenant à l'ID utilisateur réel correspondant sont listés.
-v Inverse la correspondance
-x seul les processus dont le nom ( ou la ligne de commande avec l'option -f) correspond parfaitement sont listés.
-signal Définit le signal à envoyer à chaque processus correspondant, soit en valeur numérique soit le nom symbolique du signal (pkill uniquement)

Exemples

trouver l'id de named
pgrep -u root named
liste uniquement les processus de root et daemon:
pgrep -u root,daemon
forcer syslog à relire sont fichier de configuration:
pkill -HUP syslogd
donner des information détaillée sur tous les processus xterm:
ps -fp $(pgrep -d, -x xterm)
renice les processus netscape:
renice +4 `pgrep netscape`

Codes de sortie

0 un ou plusieurs processus on été trouvé
1 aucun processus n'a été trouvé
2 erreur de syntaxe
3 erreur fatal

Notes

   le motif de recherche est tronqué au delà de 15 caractères. pgrep et pkill ne s'affichent jamais en cas de correspondance.
^
23 mai 2010

htmlpdflatexmanmd




skill

skill, snice

Obsolète, préférer killall, pkill ou pgrep

skill envoie un signal à un processus
snice modifie la priorité d'un processus

   le signal par défaut est TERM. Utiliser -l ou -L pour lister les signaux disponibles. la priorité par défaut pour snice est +4.

OPTIONS

-f fast mode
-i utilisation interactif : demande confirmation avant chaque action
-v mode verbeux
-n  n'affiche que les ID de processus

Options de délection de processus

   les critères de sélection peuvent être: terminal, user, pid, command. les options ci dessous peuvent être utilisés pour s'assurer de l'interprétation correcte.

-t l'argument suivant est un terminal
-u l'argument suivant est un username
-p l'argument est un ID de processus
-c l'argument suivant et un nom de commande
^
23 mai 2010

htmlpdflatexmanmd




pidof

pidof

Recherche l'ID d'un processus en cours

OPTIONS

-s Ne retourne qu'un seul pid
-c ne retourne que les id qui tournent avec le même dossier root. Ignoré pour les utilisateurs non-root
-x Retourne également l'id du shell qui a lancé le script nommé
-o omet l'id spécifié. %PPID peut être utilisé pour nommer le processus parent du programme pidof
^
23 mai 2010

htmlpdflatexmanmd




killall5

killall5

Envoie un signal à tous les processus

   C'est la commande killall de system V. Il envoie un signal à tous les processus excepté les threads du kernel et les processus de la propre session, donc il ne tuera pas le shell qui le lance.

OPTIONS

-o dit a killall5 d'omettre ce pid
^
23 mai 2010

htmlpdflatexmanmd




nice

nice

Lance un processus avec une priorité spécifique. La priorité d'un processus va de -20 (la plus haute priorité) à 19 (priorité la plus faible)

   Les valeurs négatives ne peuvent être utilisées que par root.

Codes de sortie

0 si aucune commande n'est spécifiée
1 si nice lui-même a échoué
126 si la commande est trouvée mais ne peut pas être invoquée
127 si la commande ne peut pas être trouvée
^
23 mai 2010

htmlpdflatexmanmd




renice

renice

Modifie la priorité d'un processus en cours d'exécution

OPTIONS

-n, —priority La priorité du processus
-g, —pgrp spécifier l'ID du groupe de processus
-u, —user spécifier l'utilisateur
-p, —pid spécifier l'ID du processus

Exemples

Change la priorité des processus 987 et 32, et tous les processus des utilisateur daemon et root
renice +1 987 -u daemon root -p 32