Heim >System-Tutorial >LINUX >Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen

Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen

WBOY
WBOYnach vorne
2024-02-11 17:48:15783Durchsuche

Angesichts des beschleunigten Arbeits- und Lebenstempos müssen wir in Linux-Systemen oft Zeitlimits festlegen, um unser Verhalten zu kontrollieren. Ob es darum geht, die Benutzeranmeldezeit oder die Prozesslaufzeit zu begrenzen, Linux-Systeme bieten eine Vielzahl von Methoden, um diesen Zweck zu erreichen. Wissen Sie also, wie man im Linux-System ein Zeitlimit festlegt? In diesem Artikel werden einige gängige Methoden vorgestellt, damit Sie sie leicht beherrschen können.

timeout ist ein Befehlszeilenprogramm, das einen bestimmten Befehl ausführt und ihn beendet, wenn er nach einer bestimmten Zeitspanne immer noch ausgeführt wird. Der Timeout-Befehl ist Teil des GNU-Core-Dienstprogrammpakets, das in fast allen Linux-Distributionen installiert ist

Anwendung

Grammatikformat:

timeout [OPTION] DURATION COMMAND [ARG]...

DURATION kann eine positive Ganzzahl oder eine Gleitkommazahl sein, gefolgt von einem optionalen Suffix:

  • s – Sekunden (Standard)
  • m – Minuten
  • h – Stunden
  • d – Tag

Wenn Sie keine Einheit hinzufügen, ist die Standardeinstellung Sekunden. Wenn DURATION 0 ist, ist das zugehörige Timeout deaktiviert.

Instanzen

Ping-Vorgang nach 5 Sekunden beenden:

[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

Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen
Ping-Vorgang nach 5 Minuten beenden:

[root@localhost ~]# timeout 5m ping www.baidu.com

Ping-Vorgang nach 1 Tag beenden:

[root@localhost ~]# timeout 1d ping www.baidu.com

Ping-Vorgang nach 2,5 Sekunden beenden:

[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
Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen

Spezifiziertes Signal senden

Wenn kein Signal gegeben wird, sendet Timeout ein SIGTERM-Signal an den verwalteten Befehl, wenn das Zeitlimit erreicht ist. Das zu sendende Signal kann mit der Option -s (-signal) angegeben werden.

SIGKILL-Signal an Ping-Befehl senden, nach 5 Sekunden beenden:

[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

Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen
Einem Signal kann sein Name oder seine Sequenznummer zugewiesen werden. Die unten verwendete SIGKILL-Seriennummer beendet den Vorgang nach 5 Sekunden:

[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

Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen
Um alle verfügbaren Signale anzuzeigen, verwenden Sie den Befehl kill -l, um alle Signale anzuzeigen.

[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 ~]#
Beherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen

Stoppen Sie den festgefahrenen Prozess

SIGTERM, das Standardsignal, das bei Überschreitung des Zeitlimits gesendet wird, kann von einigen Prozessen abgefangen oder ignoriert werden. In diesem Fall läuft der Prozess nach dem Senden des Beendigungssignals weiter.

Um sicherzustellen, dass der ausgeführte Befehl beendet wird, verwenden Sie die Option -k (–kill after) gefolgt von einer Zeitangabe. Es wird zwangsweise beendet, wenn das vorgegebene Zeitlimit erreicht ist.

Im folgenden Beispiel läuft der Timeout-Befehl eine Minute lang und beendet den Befehl nach 10 Sekunden, wenn er nicht beendet wird:

[root@localhost ~]# timeout -k 10s 1m sh test.sh

Laufen im Vordergrund

Standardmäßig führt Timeout verwaltete Befehle im Hintergrund aus. Wenn Sie den Befehl im Vordergrund ausführen möchten, verwenden Sie die Option --foreground:

[root@localhost ~]# timeout --foreground 5m ./script.sh

Zusammenfassung

In diesem Artikel werden mehrere gängige Methoden zum Festlegen von Zeitlimits in Linux-Systemen vorgestellt, darunter die Verwendung des Befehls ulimit, die Verwendung des Moduls pam_time, die Verwendung geplanter Cron-Aufgaben usw. Durch das Verständnis dieser Methoden können Sie das Benutzerverhalten besser steuern, die Systemleistung optimieren, Ressourcenverschwendung verhindern usw. Ich hoffe, dass die Leser anhand der tatsächlichen Bedürfnisse eine für sie geeignete Methode auswählen und anwenden können.

Das obige ist der detaillierte Inhalt vonBeherrschen Sie diese Methoden, um auf einfache Weise Zeitlimits in Ihrem Linux-System festzulegen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen