В вашем примере вы не написали сценарий; это функция. Таким образом, вы применяете kill
к сеансу интерактивной оболочки. Интерактивные оболочки игнорируют большинство сигналов, включая SIGTERM
, которые вы отправляете.
Поместите функцию и ее вызов в сценарий и запустите его. Гораздо больше шансов сделать то, что вы ожидаете.
paxctl
должен работать для вас,
root #paxctl -h
PaX control v0.7
Copyright 2004,2005,2006,2007,2009,2010,2011,2012 PaX Team <pageexec@freemail.hu>
usage: paxctl <options> <files>
options:
-p: disable PAGEEXEC -P: enable PAGEEXEC
-e: disable EMUTRAMP -E: enable EMUTRAMP
-m: disable MPROTECT -M: enable MPROTECT
-r: disable RANDMMAP -R: enable RANDMMAP
-x: disable RANDEXEC -X: enable RANDEXEC
-s: disable SEGMEXEC -S: enable SEGMEXEC
-v: view flags -z: restore default flags
-q: suppress error messages -Q: report flags in short format
-c: convert PT_GNU_STACK into PT_PAX_FLAGS (see manpage!)
-C: create PT_PAX_FLAGS (see manpage!)
Обычно я бы отключил все ограничения, подобные этому,
paxctl -pemrxs `which java`
Хотя вы также можете установить флаги более непосредственно, не используя paxctl
. Так, например, если вы хотите отключить mr
, вы должны сделать:
sudo setfattr -n user.pax.flags -v "mr" `which java`