Je vais vous montrer comment passer des arguments en utilisant une instance avec la commande systemctl
.
Créez le fichier de définition d'unité suivant.
test
dans ce cas) +@
+ .service
.% i
./etc/systemd/system/[email protected]
[Unit]
Description=TestService
[Service]
ExecStart=/bin/echo %I
systemctl start test@"arg1 arg2"
[root@CENTOS7 ~]# systemctl start test@"arg1 arg2"
[root@CENTOS7 ~]#
Vérifiez avec journalctl -u test @" arg1 arg2 "
.
[root@CENTOS7 ~]# journalctl -u test@"arg1 arg2"
--Les journaux commencent au jour 2019-12-29 17:19:15 JST,fin au jour 2019-12-29 20:06:21 JST.
29 décembre 20:06:21 CENTOS7 systemd[1]: Started TestService.
29 décembre 20:06:21 CENTOS7 echo[1602]: arg1 arg2
% i
au lieu de% I
dans / etc / systemd / system / test @ .service
, l'espace demi-largeur entre ʻarg1 et ʻarg2
sera échappé et ʻarg1 \ x20arg2` Sera.Les spécificateurs d'unité qui sont remplacés lorsque le fichier d'unité est chargé sont:
Spécificateur d'unité | sens | Détails |
---|---|---|
%n | Nom complet de l'unité | |
%N | Nom complet de l'unité (sans échappement) | %Identique à n, mais la chaîne n'est pas échappée. |
%p | préfixe | Dans le nom d'unité qui est devenu une instance"@"Reportez-vous à la chaîne de caractères avant le caractère. Pour les autres unités, le nom de l'unité sans le suffixe est utilisé. |
%P | Préfixe (pas d'échappement) | %Identique à p, mais la chaîne n'est pas échappée. |
%i | Nom de l'instance | Du nom d'unité qui est devenu l'instance"@"Utilisez la chaîne entre la lettre et le suffixe. |
%I | Nom de l'instance(Pas de fuite) | %Identique à i, mais la chaîne n'est pas échappée. |
%f | nom de fichier(Pas de fuite) | Nom d'instance non échappé. |
%c | Groupe de contrôle d'unité | Ce nom de groupe a/sys/fs/cgroup/systemd/N'inclut pas le préfixe. |
%r | Chemin du groupe parent du groupe de contrôle | "%c"Le chemin du groupe de contrôle parent de est utilisé. |
%R | Chemin du groupe de contrôle d'itinéraire où les tranches et les unités sont placées | Pour les instances système, "/"devenir. Dans le cas d'un conteneur, utilisez le chemin du groupe de contrôle racine du conteneur. |
%t | Répertoire d'exécution | /courir ou$XDG_RUNTIME_DIR est utilisé. |
%u | Nom d'utilisateur | マネージャーを実行しているユーザのNom d'utilisateurが使用される。 Généralement root. |
%U | UID de l'utilisateur | マネージャーを実行しているUID de l'utilisateurが使用される。 0 est utilisé pour les administrateurs système. |
%h | Répertoire personnel de l'utilisateur | マネージャーを実行しているRépertoire personnel de l'utilisateurが指定される。 Si vous êtes un administrateur système,/"root" est utilisé. |
%s | Shell de l'utilisateur | Le shell utilisé par le gestionnaire de services. Si vous êtes un administrateur système,/bin/sh "est utilisé. |
%m | ID de la machine | システムのID de la machine。 |
%b | Boot ID | ID de démarrage du système. |
%H | nom d'hôte | ユニットがロードされた時点でのシステムnom d'hôte。 |
%v | Version de lancement du noyau | 「uname -Utilisez la chaîne de caractères qui peut être obtenue à partir de la sortie de "r". |
c'est tout
Recommended Posts