Benutzer:Thomas: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) |
Thomas (Diskussion | Beiträge) |
||
Zeile 51: | Zeile 51: | ||
* [[Benutzer:Thomas/Test3/doc]] | * [[Benutzer:Thomas/Test3/doc]] | ||
* [[Benutzer:Thomas/Lebenszyklus einer Labor-Veranstaltung]] | * [[Benutzer:Thomas/Lebenszyklus einer Labor-Veranstaltung]] | ||
* [[Benutzer:Thomas/Startseitenentwurf]] |
Version vom 9. Oktober 2008, 22:24 Uhr
Kontakt
- Jabber: schnittchen ÄT das-labor PUNKT org
Tipps und Tricks
Dienste, die keine X-Clients sind, mit der Gnome Session starten und beenden
Das Problem: Dienste, die selbst keine X-Clients sind, werden beim Beenden der X-Session nicht automatisch beendet. Es ist nämlich keineswegs so, dass das Gnome Session Management allen eingetragenen Prozessen zum Schluss ein entsprechendes Signal sendet -- vielmehr müssen Clients das Ende der Session daraus ableiten, dass ihre Verbundung zum X-Server stirbt.
Das folgende Skript macht sich zu Nutze, dass die dbus-Session zusammen mit der X-Session stirbt. Ein beliebiger X-Client, der nichts tut (dem Nutzer nicht in die Quere kommt), würde es hier tun. Falls jemandem eine "leichtere" Lösung einfällt: bitte melden!
#!/usr/bin/ruby SUB_COMMAND = "Pfad des Dienstes" COMMAND_ARGS = "-d -f blahfu".split TERMINATE_SIG = "TERM" #Ändere zu INT für den Rails Webrick ./script/server child = fork { exec(SUB_COMMAND, *COMMAND_ARGS) } puts child #ein x-client, der sich mit dem Ende der Sitzung beendet system("dbus-monitor", "sender='yyy.invalid'") Process.kill(TERMINATE_SIG, child) Process.wait(child, Process::WNOHANG)
Dieses Skript anpassen, ausführbar ablegen und in die Gnome-Session eintragen (System->Einstellungen->Sitzungen, Tab Startprogramme).
Auf einem Socket sniffen (unidirektional)
Die folgende Bash-pipeline gibt wieder, was Prozess PID auf seinem file descriptor FD liest:
strace -p PID -e read=FD 2>&1 | egrep "^ \| ..... " | cut -d ' ' -f 4-19 | ruby -n -e 'split().each { |str| $stdout.putc str.hex }'
Geht vielleicht nur bei little endian Rechnern, läßt sich aber leicht anpassen. Auch der Write-Fall ist entsprechend machbar.
Dinge, die mal jemand machen sollte (Software)
- -U Option für mkswap, um die UUID zu setzen
Howto-mäßige Projekte
- Benutzer:Thomas/VirtualBox Lösungen
- Benutzer:Thomas/LVM+Cryptsetup triple layer mit Hibernate-Funktion