"bash-2.05b $ :() { :|: & } ; :" in screen: 39 bash-Fenster

H

hellwoofa

Archer
Hm... weiß gar nicht, wie ich anfangen soll: Vllt. damit, dass ich also neugieriger und unvorsichtiger Linuxneuling was getan habe, was man nicht tun sollte: Einen Befehl ausgeführt, von dem ich nachwievor nicht verstehe, was er tut.

Gefunden hab ich den in der Signatur des Boardmitglieds maestro den ich hiermit von aller Schuld freisprechen möchte, er hat mich weder dazu gezwungen, noch dazu geraten, seine Sig mal in ne Kommandozeile zu haun... jetzt hab ich den Salat.


Hab also in ner screen Session ":() { :|: & } ; :" ausgeführt.
Danach hängte sich der PC auf (bzw. ich musste ihn mit Reset neu starten)

Danach, als ich urxvt öffnete (mit screen in der bashrc) hatte ich aufs mal 39 Bash-Fenster offen (autodetach ist on).

Komischerweise passiert das aber nur, wenn ich "screen" in der .bashrc "drinstelhen" lasse. Wenn ich die Zeile auskommentiere, urxvt starte und dann "screen" eingebe, werden nur meine 2 Standardfenster geladen.

Hab schon meine Konfigdateien durchsucht, aber konnte nichts entdecken... Sehr geheimnisvoll, ich hoffe jmd. kann mir helfen?

Ich poste hier einfach mal meine .bashrc und meine .screenrc

.bashrc schrieb:
alias ls='ls --color=auto'

#Prompts
#PS1='[\u@\h \W]\$ '
#PS1='\u@\W \$ '
PS1="\[\033[36m\]\u\[\033[37m\]@\[\033[33;1m\]\W\[\033[m\] \$ "

#Aliases laden
source ~jakob/.alias
source /etc/bash_completion

#screen

#vim als manpager
export MANPAGER="col -b | vim -u ~/.vimrc -c 'set ft=man nonu nomod nolist' -"
export EDITOR="/usr/bin/vim"

#Extraction made easy

ex () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}

#vi-syntax in bash
set -o vi

.screenrc schrieb:
autodetach on
defscrollback 12000
startup_message off
defutf8 on
nonblock on
shell bash

# Make the xterm scroller work in screen, also works
# with mouse scrollwheel
termcapinfo rxvt ti@:te@
termcapinfo rxvt 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'

# Default Buffers
screen -t "numero 1"
screen -t "numero 2"
select 0
#phrakture's
#hardstatus alwayslastline "%{+b bw}[%H :: $USER]%{=b kw} %=[[ %1` | %2` | %3` | %4` ]]%=%{=b bw}[%m.%d.%y %0C%a]"

#codemac's
caption always "%{= kb}[ %{G}%H::$USER %{b}][ %=%{w}%?%-Lw%?%{b}(%{W}%n %t%?(%u)%?%{b})%{w}%?%+Lw%?%?%= %{b}][%{G} %Y.%m.%d %{W}%0c %{b}]"

Ich hoffe, das Problem lässt sich finden und lösen :)

Danke schonmal, MfG,

hellwoofa
 
Puh, danke, zu dem Stichwort hab ich noch einige Infos gefunden, dann liegt der Fehler also in ner detachten Screen-Session oder so ok. Mal in die Richtung ein bisschen weiterforschen :)

//edit: Ich kapiers einfach nicht. Wenn ich alle screen-Sessions "beende", indem ich alle darin vorhandenen Fenster schließe und dann "screen -ls" ausführe, werden mir 2 detached sessions angezeigt. Ok., dann gehe ich nich /tmp/screens/S-jakob und lösche die beiden dort vorhandenen Dateien. Dann öffne ich wieder urxvt, führe screen aus und habe meine 2 Terminals, wie aus der screenrc ersichtlich ist. Entkommentiere ich nun "#screen" in meiner .bashr und starte ein weiteres urxvt-Fenster, öffnen sich sofort 39 Terminals innerhalb von screen... das gibts doch nicht?
 
Zuletzt bearbeitet:
Das hat garantiert nichts mit der Forkbombe zu tun, die hat naemlich ihre Arbeit nach dem Reset bestimmt nicht nochmal von allein gestartet. Tritt das Problem auch nach einem sauberen Reboot des Systems noch auf?

Tip: Die Auswirkungen von Forkbomben lassen sich mit gesetzten Limits fuer die Anzahl der Prozesse, die ein User starten darf, in der /etc/security/limits.conf problemlos unterbinden.

Folgendes Beispiel setzt zum Beispiel die Anzahl der erlaubten Prozesse von Benutzern aus der Gruppe 'users' auf ein Maximum von 150.
Code:
@users    soft    nproc    100
@users    hard    nproc    150
 
Hallo

Das hatten wir doch erst vor ein paar Tagen.
Schau einfach mal diesen Thread an, da habe ich das kurz erklärt.

Ist das eigentlich ein locales System, oder gehst du da von einem remote System rein?

Gruß Wolfgang
 
Ne, is mein Desktop-PC, sitz schon direkt vor der Kiste und arbeite ja auch damit.

Den Thread hab ich durch die Suche nach Forkbombe ja auch gefunden, nur die "Lösung" meines Problems nicht.

Ich beschreib's nochmal:

Wenn ich urxvt öffne und dann "screen" ausführe, habe ich meine 2 Fenster, wie in meiner .screenrc nachgesehen werden kann und alles läuft problemlos.

Trage ich screen aber in meiner bashrc ein und starte dann urxvt, hab ich aufn Schlag 39 Fenster offen (innerhalb der screen-Session)...

Dieses Verhalten tritte auch nach dem 10. sauberen Reboot immer noch auf (schalte den PC ja über Nacht aus und die Forkbombe hab ich glaub ich am Freitag oder so ausgeführt), jetzt kann ich das Phänomen immer noch beaboachten.

Btw: Hab in meiner /etc/security/limits.conf auch schon
* soft nproc 1000
* hard nproc 2000
eingetragen, aber auch nach nem Neustart meldet mir ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 4095
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4095
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

Liest der Kernel die Datei nicht aus?
 
Die Limits in /etc/security/limits.conf haben nichts mit den Limits im Kernel zu tun.

Wenn du screen in der .bashrc eintraegst, ist es logisch, dass dir neue Shells im Loop geoeffnet werden. Dabei passiert naemlich folgendes:

1. du startest screen
2. screen laedt eine Shell, die die .bashrc einliest
3. dadurch, dass screen in der .bashrc aufgerufen wird, wird wieder ein neuer Screen gestartet und der Kreislauf beginnt von vorn (screen startet->bashrc wird eingelesen -> screen startet->bashrc wird eingelesen usw.

Mir stellt sich nur die Frage... Was willst du mit dem Aufruf von screen in der .bashrc erreichen?
 
löl klassischer Fall von "auf dem Schlauch stehen"...

Was ich damit erreichen will? Bin zu faul jedes mal, wenn ich ein neues Terminal aufmache, "screen" tippen zu müssen...aber lieber das als "screen" + "C-a-c"...

Somit hat sich mein Problem erledigt, danke für den Hinweis!

<--doof
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Gnome Classic Desktop: Home-Inhalt Icons ausblenden

Debian 6 Server ssh zugriff putty, darüber Bilder sehen nutzen, Outfiting ?

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben