Pour les administrateurs système chargés de contrôler les serveurs Linux, la gestion des ressources est une tâche importante à prendre en charge. Parfois, les commandes Linux occupent une énorme partie des ressources système et doivent être arrêtées.

Heureusement, vous pouvez limiter l'exécution de vos commandes à l'aide d'utilitaires tels que limite de temps. Dans cet article, nous expliquerons pourquoi vous devez ajouter des limites de temps à vos commandes et comment ajouter une restriction de temps à l'aide de commandes telles que timelimit et timeout.

Pourquoi limiter le temps d'exécution d'une commande?

Il y a plusieurs raisons pour lesquelles vous pourriez avoir à exécuter vos commandes avec une limite de temps. Tout d'abord, vous utilisez peut-être un ordinateur ou un serveur plus ancien et ne voulez pas que votre système gaspille ses ressources dans des traitements indésirables.

Deuxièmement, les tâches limitées dans le temps telles que les transferts de fichiers se terminent après une certaine période, mais leurs processus ne s'arrêtent pas immédiatement. Pour empêcher le programme de prendre du temps CPU et de la mémoire supplémentaires, vous pouvez ajouter une limite qui arrêtera le processus une fois le transfert terminé.

Ajouter une limite à l'aide de la commande timeout

La commande timeout est le premier choix de nombreux utilisateurs Linux pour ajouter une restriction de temps à leurs commandes. Étant donné que cet outil fait partie de la Utilitaires de base GNU package, il est préinstallé sur presque toutes les distributions Linux.

La syntaxe de base de la commande timeout est:

commande de limite de délai

...où limite est la durée pendant laquelle la commande doit s'exécuter et commander est la commande Linux que vous souhaitez exécuter avec une limite de temps.

Par exemple, si vous souhaitez obtenir les détails du processus à l'aide du Haut commande pendant 10 secondes:

timeout 10s top

La commande supérieure est sans fin et vous devez la quitter manuellement en utilisant Ctrl + C. La commande susmentionnée s'exécutera en haut pendant 10 secondes et une fois que le minuteur est écoulé, le délai d'expiration arrêtera son exécution. Notez que le délai d'attente prend secondes comme unité de temps par défaut, ce qui signifie 10 et 10 s sont identiques.

Vous pouvez aussi utiliser m, h, et pour minutes, les heures, et journées respectivement.

Envoyer manuellement des signaux d'arrêt avec le délai d'expiration

Par défaut, la commande timeout envoie SIGTERM comme signal d'arrêt. SIGTERM signifie Terminer le signal, qui met fin immédiatement au processus.

Vous pouvez également envoyer d'autres signaux en utilisant le -s drapeau. Par exemple, pour envoyer le signal SIGKILL:

timeout -s SIGKILL 10 top

Il est également possible de spécifier le signal avec son numéro de signal. La commande suivante envoie également le signal SIGKILL à la commande supérieure.

timeout -s 9 10 top

...où 9 est le numéro de signal pour SIGKILL.

Pour obtenir une liste de tous les signaux disponibles:

tuer -l

Certaines commandes ne s'arrêtent pas complètement même après l'ajout d'une limite de temps. Dans de telles situations, l'ajout d'un signal d'arrêt avec la commande de temporisation par défaut résout le problème.

timeout -k 15 10 top

La commande susmentionnée exécutera d'abord la commande supérieure pendant 10 secondes, et si la commande ne s'arrête pas, elle enverra un signal d'arrêt au processus après 15 secondes.

Apprendre encore plus: Comment tuer les programmes qui ne répondent pas sous Linux

Restriction de l'exécution des commandes avec timelimit

Contrairement à la commande timeout, timelimit ne fait pas partie des packages standard préinstallés sur les distributions Linux. Par conséquent, vous devrez installer manuellement timelimit sur votre système.

Pour installer sur des distributions basées sur Debian:

sudo apt installer timelimit

Timelimit n'est pas disponible dans les référentiels officiels d'Arch. Mais, vous pouvez l'installer à l'aide d'un gestionnaire de packages AUR comme Yay.

sudo yay -S timelimit

En rapport: Comment installer des packages sur Arch Linux

Pour installer sur Fedora:

Délai d'installation sudo dnf

Sur RHEL et CentOS:

sudo yum installer timelimit

Sinon, si vous ne parvenez toujours pas à installer le package sur votre système, téléchargez le code source sur le site officiel et installez-le manuellement.

Télécharger: limite de temps

Pour exécuter la commande supérieure pendant 10 secondes en utilisant timelimit:

timelimit -t10 haut

Timelimit prend plusieurs arguments comme warntime, avertir, tuer le temps, et tuer. Si l'utilisateur ne fournit pas ces arguments, leurs valeurs par défaut sont prises, qui sont warntime = 3600 secondes, warnsig = 15, killtime = 120, et killsig = 9.

Gérer la vie d'une commande sous Linux

Surveiller les commandes et prendre le contrôle des processus devient important si votre machine Linux dispose de ressources limitées. Des utilitaires tels que timeout et timelimit sont une bouée de sauvetage car ils vous permettent d'ajouter des restrictions de temps à vos commandes.

À l'instar de l'exécution des commandes, vous pouvez également limiter le temps d'écran de votre système. Si vous êtes un parent qui ne veut pas que votre enfant perde un temps inutile devant un ordinateur, limiter le temps d'écran est le choix le plus approprié.

E-mail
5 façons de bloquer des sites et de limiter le temps d'écran sous Linux

Les logiciels de contrôle parental sont pratiquement inconnus sous Linux. Voici plusieurs façons de bloquer des sites et de gérer le contenu sous Linux.

Lire la suite

Rubriques connexes
  • Linux
  • Linux
A propos de l'auteur
Deepesh Sharma (47 articles publiés)

Deepesh est l'éditeur junior pour Linux chez MUO. Il écrit du contenu informatif sur Internet depuis plus de 3 ans. Pendant son temps libre, il aime écrire, écouter de la musique et jouer de la guitare.

Plus de Deepesh Sharma

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!

Un pas de plus…!

Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.

.