Saya mengacaukan sistem saya dan menemukan cara baru untuk menggunakan memori, tetapi tampaknya semakin sedikit perintah yang hanya menahan jumlah data terbatas sebelum menghentikan / membunuh perintah.
Untuk menguji, jalankan (hati-hati! Menggunakan banyak memori sistem dengan sangat cepat!)
$ cat /dev/zero | less
Dari pengujian saya, sepertinya perintah itu terbunuh setelah kurang mencapai 2,5 gigabytes memori, tetapi saya tidak dapat menemukan apa pun di halaman manual yang menunjukkan bahwa itu akan membatasi dengan cara seperti itu.
Selain itu, saya tidak dapat menemukan dokumentasi apa pun melalui google tentang masalah ini.
Cahaya apa pun untuk penemuan yang cukup mengejutkan ini akan luar biasa!
Informasi Sistem: Quad core intel i7, ram 8gb.
$ uname -a
Linux Tyler-Work 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ less --version
less 458 (GNU regular expressions)
Copyright (C) 1984-2012 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04
Codename: trusty
Memperbarui:
Semakin sedikit proses bertahan setelah mencapai penggunaan 2,5 GB ram, tetapi berhenti mengumpulkan input dari output proses yang disalurkan. Memeriksa nilai pengembalian menunjukkan bahwa proses cat dihabisi oleh sinyal dari less.
$ cat /dev/zero | less; echo "${PIPESTATUS[0]} ${PIPESTATUS[1]}"
141 0
Status keluar 141 menunjukkan bahwa lebih sedikit yang mematikan proses kucing melalui SIGPIPE ( https://stackoverflow.com/questions/19120263/why-exit-code-141-with-grep-q#answer-19120674 )
Mengumpulkan informasi dari executable itu sendiri menunjukkan bahwa semakin sedikit binernya yang 64bit, jadi itu tidak boleh dibatasi dalam jumlah ram yang dapat digunakan:
$ file /bin/less
/bin/less: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=539cf624699477e3e069b6c4e4b33842f22be2d2, stripped
Yang tidak menjelaskan mengapa lebih sedikit mengirimkan sinyal mematikan ke proses kucing sebagai jumlah data tertentu ini.
:
prompt, setelah itu menekan q
menyebabkan lebih sedikit berhenti seperti biasa.