fork loop verhindern?

12/07/2016 - 13:45 von Ulli Horlacher | Report spam
Die kleine Schwester der fork bomp ist die fork loop:
rekursiv ohne Abbruchbedingung Prozesse starten.

Ist mir mal wieder passiert, unabsichtlich, bloeder shell Programmierfehler.

Da zu spaet bemerkt, musste ich einen Reset ausfuehren, weil das System
auf nichts mehr reagierte.

So was moechte ich in Zukunft verhindern.

Leider zaehlt "ulimit -u" ebenso wie nproc in /etc/security/limits.conf
alle Userprozesse zusammen und nicht bloss die ab PID $$.

Alternative?



Ullrich Horlacher Server und Virtualisierung
Rechenzentrum TIK
Universitaet Stuttgart E-Mail: horlacher@tik.uni-stuttgart.de
Allmandring 30a Tel: ++49-711-68565868
70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
12/07/2016 - 15:18 | Warnen spam
Ulli Horlacher wrote:

Die kleine Schwester der fork bomp ist die fork loop:
rekursiv ohne Abbruchbedingung Prozesse starten.

Ist mir mal wieder passiert, unabsichtlich, bloeder shell
Programmierfehler.

Da zu spaet bemerkt, musste ich einen Reset ausfuehren, weil das System
auf nichts mehr reagierte.



SysRq?

So was moechte ich in Zukunft verhindern.

Leider zaehlt "ulimit -u" ebenso wie nproc in /etc/security/limits.conf
alle Userprozesse zusammen und nicht bloss die ab PID $$.



Besser ein Limit als keines. “ulimit” bezieht sich im Unterschied zu
“nproc” immerhin nur auf die aktuelle Shell und Prozesse, welche von dieser
gestartet werden.

Alternative?



Vielleicht ein Linter für Shellscripts; aber ShellCheck [1] erkennt die
klassische Forkbomb

:(){ :|:&};:

leider nicht. Möglicherweise muss man bei Shellscripts erst das
Halteproblem lösen; bei höheren Programmiersprachen gibt es dafür das
Stacklimit.

_________
[1] <https://www.shellcheck.net/>
PointedEars

Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen