Jue May 01, 2008 3:09 pm
|
 |
javipr
Perlero Nuevo

|
Registrado: 01 May 2008
Mensajes: 1
|
|
| Ejecución comando sistema desde Perl |
|
|
Hola a todos, tengo un problema con la ejecución de un comando del sistema desde Perl.
En concreto, quiero ejecutar estas dos sentencias, que se ejecutan correctamente con un intérprete Bash:
SENTENCIA 1
| bash: | exec softlimit -m 10000000 \
unixserver /tmp/.vmailmgrd vmailmgrd 2>&1 \
| setuidgid qmaill multilog t n100 s1000000 /usr/local/qmail/logs/vmailmgrd & |
SENTENCIA 2
| bash: | exec softlimit -m 20000000 \
envdir /etc/relay-ctrl relay-ctrl-chdir \
tcpserver -v -H -R -l $HOSTNAME -x /etc/tcpcontrol/tcp.smtp.cdb \
-c200 -u5002 -g5000 0 smtp \
rblsmtpd -b -r bl.spamcop.net \
fixcrio relay-ctrl-check qmail-smtpd 2>&1 2>/tmp/salida \
| setuidgid qmaill \
multilog t n100 s1000000 /usr/local/qmail/logs/smtp & |
He probado de varias maneras: primero cogí y puse esas órdenes entre `` y no funcionó; luego probé asignando esa cadena a una variable, quitando los "\", así:
| Perl: | $EJECUCION= "exec softlimit -m 10000000 unixserver /tmp/.vmailmgrd vmailmgrd 2>&1 | setuidgid qmaill multilog t n100 s1000000 /usr/local/qmail/logs/vmailmgrd &"
system($EJECUCION); |
Pero tampoco funcionó... no sé si el problema vendrá dado por el caracter "|", que igual tiene un equivalente diferente en Perl...
¿Alguien podría orientarme? ¿Qué hago mal?
Desde ya, muchísimas gracias.
Un saludo,
Javi. |
|
|
|

Jue May 01, 2008 4:21 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
|
|
|
|
|
Bienvenido a los foros de Perl en Español, javipr.
Usa comillas simples, en lugar de dobles. El problema creo que está con los '&'. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|