Вызов подпроцесса Python для insmod приводит к ошибке неопределенного символа, он работает из стандартной оболочки

Попробуйте это,

cat access_log | awk '{a[$1]++} END {for(i in a) print a[i],i}' | sort -n | tail -n1

Для определенных IP-адресов:

cat access_log | awk '$1 == "192.168.1.37" || $1 == "192.168.1.110" {a[$1]++} END {for(i in a) print a[i],i}' 
3
22.01.2021, 11:12
1 ответ

Я не знаю, является ли это причиной вашей проблемы, но обратите внимание, что ~в cmd path=~/dump.rawрасширяется только оболочками bashи mksh(в случае bashтолько когда то, что осталось от =, выглядит как допустимое имя переменной ), когда их соответствующая опция posixне включена (и для bashэта опция posixвключена при вызове какsh)и оболочкой zsh, когда включена ее опция magicequalsubst.

Не в других оболочках. Для shPOSIX требует echo path=~для вывода path=~.

Таким образом, если ваш shне является сборкой mkshбез режима posix, включенного по умолчанию, при запуске из pythonс использованием оболочки (, которая будет sh), ~не будет расширен до вашего домашнего каталога.

Здесь используйте:

sudo insmod /path/to/lime.ko path="$HOME/dump.raw" format=raw

вместо этого. Или получите python, чтобы получить значение переменной среды HOMEдля создания этого аргумента path=...., если не вызывается оболочка.

Для получения дополнительной информации о расширении ~см. Всегда ли ~равно $HOME

2
18.03.2021, 22:35

Теги

Похожие вопросы