Re: zsh Goodies

Startseite
Anhänge:
Nachricht
+ (text/plain)
+ signature.asc (application/pgp-signature)
Nachricht löschen
Nachricht beantworten
Autor: Martin Steigerwald
Datum:  
To: list
Betreff: Re: zsh Goodies
Am Montag 16 Juni 2008 schrieb Sebastian Harl:
> Heyho Liste ;-)


Hi!

> Das erfordert jedoch den Aufruf von zwei Kommandos und, schlimmer, die
> Kenntnis der PID oder der Job-ID des im Hintergrund gestarteten
> Prozesses, was eine Automatisierung unnoetig erschwert. Aber zum Glueck
> bietet zsh eine Moeglichkeit, diese beiden Schritte in einem Schritt
> durchzufuehren:
>
> % <prog> &!
>
> Mir gefaellt das recht gut und ich hoffe, dass es fuer den einen oder
> anderen auch hilfreich und neu war ;-)


Na endlich das Aquivalent von Run <NIL: >NIL: unter AmigaOS. Das suche ich
schon seit Ewigkeiten! Schankedön...

Und wie geht das Shell unabhängig?

Ich hab diverse Experimente hinter mir. Sogar das disown war da schon mit
dabei, das übrigens auch in bash funktioniert. Nicht jedoch in:

martin@shambala:~ -> ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2008-02-13 09:36 /bin/sh -> dash

Hier meine Versuche, eine mittlerweile ausgetauschte, ausgeleierte
CMOS-Batterie in meinem T23 ThinkPad zu kompensieren -
eigentlich "deepdance" aber mein T42 "shambala" hat die gleiche
Konfiguration übernommen:

---------------------------------------------------------------------
shambala> cat /etc/network/if-up.d/chrony
#!/bin/sh


# Start chrony stuff in at least one minute, lets see whether that works,
26.6.2006

at -f /etc/chrony/network-up.sh now

#nohup /etc/chrony/network-up.sh
#/etc/chrony/network-up.sh </dev/null 2>&1 >/dev/null &
#disown
#screen /etc/chrony/network-up.sh
---------------------------------------------------------------------

---------------------------------------------------------------------
shambala> cat /etc/chrony/network-up.sh
#!/bin/sh
# This script tells chronyd that the connection is up so that it can
# contact the server.  John Hasler <jhasler@???> 1998-2003
# Any possessor of a copy of this program may treat it as if it
# were in the public domain.  I waive all rights.


# Debugging?
#set -x

# Wait a bit till the DSL router likely built up an internet connection
sleep 120

# Put a hint in the log file that we are running
logger "/etc/chrony/network-up.sh: restarting chrony, put it online and do
some rapid measurements..."

# Make sure that chrony does DNS lookups, 25.6.2006, martin
# Should better wait till pool.ntp.org can be accessed!
# but for now I tell at to defer it about a minute, 25.6.2006, martin
/etc/init.d/chrony restart >/dev/null

# Otherwise chronyc will hang ;(, oh man this is sucking so extremely,
26.6.2006, martin
sleep 5

# Copied from /etc/ppp/ip-up.d/chrony, just modified the /var/run
filename, 25.6.2006, martin
/bin/pidof chronyd > /dev/null || exit 0
KEY=$(awk '$1 ~ /^commandkey$/ { print $2; exit}' /etc/chrony/chrony.conf)
PASSWORD=`awk '$1 ~ /^'$KEY'$/ {print $2; exit}' /etc/chrony/chrony.keys`
/usr/bin/chronyc > /dev/null << EOF
password $PASSWORD
online
EOF
touch /var/run/chrony-eth0-up
exit 0
---------------------------------------------------------------------

Und ja, das *ist* ein Hack... und zwar noch nicht einmal ein korrekter...
es würde auch bei eth1 triggern und dann das falsche run-File touchen ;).

Und ja, es funktionierte ausschließlich mit at! Auch, weil ich disown
nicht verstanden hatte.

Da es für mein T23 funktionierte und auf meinem T42 bislang nicht störte,
habe ich das nie mehr angefasst. Ich glaube, es gibt jetzt auch eine
Version von Chrony, die bezüglich der DNS-Geschichte ein Update hat oder
zumindest ein Perl-Skript, um diese Ich-frage-den-DNS-Server-auch-noch-
einmal-wenn-es-beim-ersten-Mal-nicht-hinhaut-Geschichte zu bauen.

Ich könnte natürlich entweder den Hack entfernen oder &! verwenden
und /usr/bin/zsh oben rein schreiben ;-).

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7