Я узнал, что должен отправить EVIOCGRAB ioctl на устройство, которое захватывает его для эксклюзивного использования.
Вот то, как сделать это в Ruby:
#!/usr/bin/env ruby
BARCODE_SCANNER = "/dev/input/by-id/usb-Metrologic_Metrologic_Scanner-event-kbd"
require 'rubygems'
require 'libdevinput'
require 'ffi'
require 'ffi/tools/const_generator'
# We need access to the file
DevInput.class_eval { attr_reader :dev }
# Look up value of EVIOCGRAB constant
cg = FFI::ConstGenerator.new('input') do |gen|
gen.include('linux/input.h')
gen.const(:EVIOCGRAB, '%u', '(unsigned)')
end
EVIOCGRAB = cg['EVIOCGRAB'].to_i
scanner = DevInput.new(BARCODE_SCANNER)
# Send EVIOCGRAB to scanner, which grabs it for exclusive use by our process
scanner.dev.ioctl(EVIOCGRAB, 1)
puts "Waiting for events..."
scanner.each do |event|
# Ignore everything except key press events
next unless event.type == 1 && event.value == 1
puts "Key: #{event.code_str}"
end
Примечание: Необходимо будет установить libdevinput
драгоценный камень, ffi
, и заголовки Linux. Если Вы используете версию Linux между 3.2.0
и 3.6.11
, можно заменить FFI::ConstGenerator
часть с EVIOCGRAB = 1074021776
, и затем Вам не нужно ffi
или заголовки Linux.
Вы можете попробовать установить UMASC, прежде чем преобразовать его
umask 077; openssl rsa -in secure.key -out insecure.key
Редактировать: чтобы не повлиять на другие файлы в текущей среде оболочки с помощью Установка
Настройка выполнения его в подпункте:
( umask 077; openssl rsa -in secure.key -out insecure.key )
Один из способов сделать это - сделать пустой файл Insecure.Key сначала и chmod.
touch insecure.key
chmod 600 insecure.key
, который делает каталог похож на
total 28
drwxr-xr-x 2 flyte flyte 4096 Apr 17 11:44 .
drwxr-xr-x 12 flyte flyte 4096 Apr 17 11:44 ..
-rw------- 1 flyte flyte 0 Apr 17 11:44 insecure.key
-rw------- 1 flyte flyte 1746 Apr 17 11:42 secure.key
, а затем удалить парольную фразу
openssl rsa -in secure.key -out insecure.key
, которая делает каталог как
total 32
drwxr-xr-x 2 flyte flyte 4096 Apr 17 11:44 .
drwxr-xr-x 12 flyte flyte 4096 Apr 17 11:44 ..
-rw------- 1 flyte flyte 1679 Apr 17 11:45 insecure.key
-rw------- 1 flyte flyte 1746 Apr 17 11:42 secure.key
, однако, это немного faff, и это было бы лучше, если бы был аргумент OpenSSL, который делает это за один ход.
Другой отличный инструмент для быстрого обзора, когда нагрузка поставляется из ATOP
, он может показать вам обзор всех ресурсов (CPU, память / своп, сеть и диск ввода / вывода) или вы можете сверлить до одного ресурса и сортировки процессов, насколько они потребляют.
-121--233-Как только вы устанавливаете менеджер по пакетам и начните его использовать (плюс REPOS), LFS в основном перестает быть LFS и становится дистрибутивом, используя этот диспетчер пакетов и REPOS. Что вот ваша цель в использовании LFS? Если вы хотите специальные самостроительные пакеты / ядро, вы также можете установить Arch Linux, а затем построить эти пакеты с MakePKG и / или записывать свой собственный PKGBUILD для этих пакетов, а не в REPOS.
-121--150496-Тривиальное, но прощественное решение - это каталог CHMOD 700 и работает внутри него.