Rumah  >  Artikel  >  Tutorial sistem  >  Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda

Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda

WBOY
WBOYke hadapan
2024-02-11 17:48:15673semak imbas

Dengan kadar kerja dan kehidupan yang dipercepatkan, kita selalunya perlu menetapkan beberapa had masa dalam sistem Linux untuk mengawal tingkah laku kita. Sama ada untuk mengehadkan masa log masuk pengguna atau mengehadkan masa berjalan proses, sistem Linux menyediakan pelbagai kaedah untuk mencapai tujuan ini. Jadi, adakah anda tahu bagaimana untuk menetapkan had masa dalam sistem Linux? Artikel ini akan memperkenalkan beberapa kaedah biasa supaya anda boleh menguasainya dengan mudah.

masa tamat ialah utiliti baris arahan yang menjalankan arahan tertentu dan menamatkannya jika ia masih berjalan selepas tempoh masa tertentu. Perintah tamat masa adalah sebahagian daripada pakej utiliti teras GNU, yang dipasang dalam hampir semua pengedaran Linux

Cara penggunaan

Format tatabahasa:

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

DURATION boleh menjadi integer positif atau nombor titik terapung, diikuti dengan akhiran pilihan:

  • s – saat (lalai)
  • m – minit
  • h – jam
  • d – hari

Jika anda tidak menambah sebarang unit, lalainya ialah saat. Jika DURATION ialah 0, tamat masa yang berkaitan dilumpuhkan.

Instance

Tamatkan operasi ping selepas 5 saat:

[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

Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda
Tamatkan operasi ping selepas 5 minit:

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

Tamatkan operasi ping selepas 1 hari:

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

Tamatkan operasi ping selepas 2.5 saat:

[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
Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda

Hantar isyarat yang ditentukan

Jika tiada isyarat diberikan, tamat masa menghantar isyarat SIGTERM kepada arahan terurus apabila had masa dicapai. Isyarat yang akan dihantar boleh ditentukan menggunakan pilihan -s (-signal).

Hantar isyarat SIGKILL ke arahan ping, tamatkan selepas 5 saat:

[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

Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda
Isyarat boleh diberikan namanya atau nombor urutannya. Nombor siri SIGKILL yang digunakan di bawah akan menamatkan operasi selepas 5 saat:

[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

Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda
Untuk melihat semua isyarat yang tersedia, gunakan perintah kill -l untuk melihat semua isyarat.

[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 ~]#
Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda

Hentikan proses yang tersekat

SIGTERM, isyarat lalai yang dihantar apabila melebihi had masa, boleh ditangkap atau diabaikan oleh beberapa proses. Dalam kes ini, proses terus berjalan selepas menghantar isyarat penamatan.

Untuk memastikan arahan yang dilaksanakan ditamatkan, gunakan pilihan -k (–kill after) diikuti dengan masa. Ia akan terpaksa ditamatkan apabila had masa yang diberikan telah dicapai.

Dalam contoh di bawah, arahan tamat masa berjalan selama satu minit dan akan menamatkan arahan selepas 10 saat jika ia tidak tamat:

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

Berlari di latar depan

Secara lalai, tamat masa menjalankan perintah terurus di latar belakang. Jika anda ingin menjalankan arahan di latar depan, gunakan pilihan --foreground:

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

Ringkasan

Artikel ini memperkenalkan beberapa kaedah biasa untuk menetapkan had masa dalam sistem Linux, termasuk menggunakan perintah ulimit, menggunakan modul pam_time, menggunakan tugas berjadual cron, dsb. Dengan memahami kaedah ini, anda boleh mengawal tingkah laku pengguna dengan lebih baik, mengoptimumkan prestasi sistem, mencegah pembaziran sumber, dsb. Saya harap pembaca boleh memilih kaedah yang sesuai dengan mereka berdasarkan keperluan sebenar dan mengaplikasikannya.

Atas ialah kandungan terperinci Kuasai kaedah ini untuk menetapkan had masa dengan mudah dalam sistem Linux anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lxlinux.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam