Maison > Tutoriel système > Linux > Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux

Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux

WBOY
Libérer: 2024-02-11 17:48:15
avant
769 Les gens l'ont consulté

Avec le rythme accéléré du travail et de la vie, nous devons souvent fixer des limites de temps dans les systèmes Linux pour contrôler notre comportement. Qu'il s'agisse de limiter le temps de connexion des utilisateurs ou le temps d'exécution des processus, les systèmes Linux proposent diverses méthodes pour atteindre cet objectif. Alors, savez-vous comment définir une limite de temps sur le système Linux ? Cet article présentera plusieurs méthodes courantes afin que vous puissiez facilement les maîtriser.

timeout est un utilitaire de ligne de commande qui exécute une commande spécifiée et la termine si elle est toujours en cours d'exécution après une période de temps donnée. La commande timeout fait partie du package utilitaire principal GNU, installé dans presque toutes les distributions Linux

Comment utiliser

Format de grammaire :

timeout [OPTION] DURATION COMMAND [ARG]...
Copier après la connexion

DURATION peut être un nombre entier positif ou à virgule flottante, suivi d'un suffixe facultatif :

  • s – secondes (par défaut)
  • m – minutes
  • h – heures
  • j – jour

Si vous n’ajoutez aucune unité, la valeur par défaut est les secondes. Si DURATION est 0, le délai d'attente associé est désactivé.

Instances

Terminez l'opération ping après 5 secondes :

[root@localhost ~]# timeout 5 ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=16.3 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=16.0 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=16.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=16.0 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=17.6 ms
Copier après la connexion

Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux
Terminez l'opération ping après 5 minutes :

[root@localhost ~]# timeout 5m ping www.baidu.com
Copier après la connexion

Terminer l'opération ping après 1 jour :

[root@localhost ~]# timeout 1d ping www.baidu.com
Copier après la connexion

Terminez l'opération ping après 2,5 secondes :

[root@localhost ~]# timeout 2.5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=14.9 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=15.6 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=55 time=15.6 ms
Copier après la connexion
Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux

Envoyer le signal spécifié

Si aucun signal n'est donné, timeout envoie un signal SIGTERM à la commande gérée lorsque le délai est atteint. Le signal à envoyer peut être spécifié à l'aide de l'option -s (-signal).

Envoyez le signal SIGKILL à la commande ping, terminez après 5 secondes :

[root@localhost ~]# sudo timeout -s SIGKILL 5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=17.2 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=16.6 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=16.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=16.2 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=16.7 ms
Killed
Copier après la connexion

Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux
Un signal peut se voir attribuer son nom ou son numéro de séquence. Le numéro de série SIGKILL utilisé ci-dessous mettra fin à l'opération après 5 secondes :

[root@localhost ~]# sudo timeout -s 9 5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=15.5 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=16.3 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=55 time=14.9 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=4 ttl=55 time=16.0 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=5 ttl=55 time=22.0 ms
Killed
Copier après la connexion

Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux
Pour voir tous les signaux disponibles, utilisez la commande kill -l pour afficher tous les signaux.

[root@localhost ~]# kill -l
 1) SIGHUP  2) SIGINT  3) SIGQUIT  4) SIGILL  5) SIGTRAP
 6) SIGABRT  7) SIGBUS  8) SIGFPE  9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX 
[root@localhost ~]#
Copier après la connexion
Maîtrisez ces méthodes pour définir facilement des limites de temps dans votre système Linux

Arrêtez le processus bloqué

SIGTERM, le signal par défaut envoyé lorsque le délai est dépassé, peut être détecté ou ignoré par certains processus. Dans ce cas, le processus continue de s'exécuter après l'envoi du signal de fin.

Pour vous assurer que la commande exécutée est terminée, utilisez l'option -k (–kill after) suivie d'une heure. Il sera forcé de se terminer lorsque le délai imparti sera atteint.

Dans l'exemple ci-dessous, la commande timeout s'exécute pendant une minute et mettra fin à la commande après 10 secondes si elle ne se termine pas :

[root@localhost ~]# timeout -k 10s 1m sh test.sh
Copier après la connexion

Courir au premier plan

Par défaut, timeout exécute les commandes gérées en arrière-plan. Si vous souhaitez exécuter la commande au premier plan, utilisez l'option --foreground :

[root@localhost ~]# timeout --foreground 5m ./script.sh
Copier après la connexion

Résumé

Cet article présente plusieurs méthodes courantes pour définir des limites de temps dans les systèmes Linux, notamment l'utilisation de la commande ulimit, l'utilisation du module pam_time, l'utilisation des tâches planifiées cron, etc. En comprenant ces méthodes, vous pouvez mieux contrôler le comportement des utilisateurs, optimiser les performances du système, éviter le gaspillage de ressources, etc. J'espère que les lecteurs pourront choisir une méthode qui leur convient en fonction de leurs besoins réels et l'appliquer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal