Créez une paire commune de dispositifs symboliques

Je souhaite créer un périphérique symbolique qui a les mêmes propriétés qu'un pseudoerminal standard, mais peut avoir un nom spécifique.

En fait, j'aimerais avoir / dev / pts / my-unique-name Au lieu de chiffres pouvant être réutilisés. Y a-t-il un moyen de le faire? Peut

mknod

Par exemple, créez des périphériques de caractères connectés arbitrairement connectés?
Invité:

Emilie

Confirmation de:

Ce que vous demandez est essentiellement utiliser
http://en.wikipedia.org/wiki/P ... iants
. Pilote de périphérique pseudo-terminal BSD j'avais 256 Numéros de par inode (Chaque couple consistait en dirigeant et esclave), et approprié inode ont été créés par B. / dev Lorsqu'il est installé et laissé le même.

Rien dans le noyau ne nécessite de nommage spécifique, mais l'application qui doit rechercher une paire non utilisée a généralement certaines attentes pour la dénomination.

La plupart des gens croient que les pseudoerminaux BSD Obsolète avec l'avènement des pseudoerminaux Unix 98. Et il semble que plusieurs distributions Linux refusé de soutenir des pseudoerminaux BSD. Cependant, si vous pouvez trouver un noyau qui soutient toujours les pseudoerminaux BSD, Vous pouvez utiliser ce support pour créer une paire de descripteurs de périphérique d'index exactement comme vous le demandez.

mknod /dev/my-master c 2 42
mknod /dev/my-slave c 3 42

Veuillez noter qu'ils doivent rester à l'extérieur

/dev/pts

, car

/dev/pts

Pour les pseudoerminaux Unix 98.

Si vous avez juste besoin de passer le flux de caractères et que vous n'avez pas besoin de toutes les autres fonctions pouvant offrir un pseudoerminal, il peut être plus facile d'utiliser le canal nommé.

Christine

Confirmation de:

mknod travaillera, à quelques exceptions près. Syntaxe:

mknod /path/to/new/dev c major minor

Donc, par exemple, vous êtes probablement capable de créer un nouveau type de type. pts de

mknod /tmp/mypts c 136 0

Cependant, j'ai trouvé que si vous essayez de le faire dans / dev / pts, Vous recevrez un refus d'accès. Je peux le faire dans / dev, Mais pas dans / dev / pts. Je suis sur la boîte Centos 5.5. YMMV.

C'est parce que / dev / pts Noyau monté (De mon fichier / etc / fstab):

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

C'est un système pseudo-accachedey, contrôlé par le noyau, et je ne penserais pas que je jouais avec elle - une bonne idée. Façon standard de créer un nouveau fichier là-bas - open () ing / dev / ptmx; qui recevra l'appelant désigné fd Le terminal principal et le nouvel appareil seront créés comme / dev / pts / X, Où X Se démarque dynamiquement ptmx En tant que dispositif subordonné. Il sera ensuite ouvert lui-même, généralement à la suite d'un processus ramifié à partir de la source.

Probablement il y a une bonne raison pour laquelle c'est le cas. Je ne suis pas sûr de ce que c'est, mais je n'essaierais pas de le casser si la stabilité du système - C'est ce que vous appréciez.

Dans ce cas, la première ligne de commande avec les paramètres réels que j'ai présentés vous permettra de créer votre propre appareil. pts partout.

mais

/ dev / pts, Et en fonction de ce que vous allez faire avec lui, peut-être que cela suffit à y arriver où vous allez.

Pour répondre aux questions, connectez-vous ou registre