Forum: Italian Ruby user group Script + EXEC

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
2c922ad098ceea31811748e284fb7594?d=identicon&s=25 Gianluca Rettore (Guest)
on 2007-01-16 09:32
(Received via mailing list)
Ciao ragazzi mi sapete aiutare, ho scritto uno script un po macchinoso
(d'altronde sono agli inizi)
)per la configurazione di un pacchetto server per linux.
Lo script esegue una serie di comandi e di modifica di file il mio
problema che non avevo valutato è che quando eseguo alcuni comandi
esterni (esempio gli script in /etc/init.d/) mi esce anche dallo script
ruby, questo perchè probabilmente lo script che lancio da un exit,
sapete dirmi come faccio a mantenere il controllo sullo script originale
senza modificare gli script esterni??

Grazie
C3d3b41d28306e6d3db4aabcdf3642c1?d=identicon&s=25 Roberto De Ioris (Guest)
on 2007-01-16 09:54
(Received via mailing list)
On mar, 2007-01-16 at 09:30 +0100, Gianluca Rettore wrote:
> Grazie
>

Non credo dipenda da una chiamata a "exit" dello shell script, puoi
inviare la parte di codice ruby che esegue gli script in init.d ?
2c922ad098ceea31811748e284fb7594?d=identicon&s=25 Gianluca (Guest)
on 2007-01-16 19:15
Roberto De Ioris wrote:
> On mar, 2007-01-16 at 09:30 +0100, Gianluca Rettore wrote:
>> Grazie
>>
>
> Non credo dipenda da una chiamata a "exit" dello shell script, puoi
> inviare la parte di codice ruby che esegue gli script in init.d ?

File.copy("/etc/fstab","/etc/fstab-old-rb",verbose=false)
newfile = File.new("fstab-old","w")
  File.open(ARGV[0],"r+").each_line do |x|  # per ogni riga x del file:

   s=x.split

if s[1]=="/"
   s[3].replace "acl,user_xattr,usrquota,grpquota"
   puts s[3]
end
s.each_index do |w|


newfile.write(s[w]+" ")
if w==5

 newfile.write("\n")
end
end

  end
   newfile.close
  File.delete("/etc/fstab-old")
 File.move("fstab-old","/etc/")

 #DNS server
exec "chkconfig --add named"
exec "/etc/init.d/named start"
#alla fine
 exec "touch /aquota.user /aquota.group"
exec "chmod 600 /aquota.*"

la prima parte mi serve per modificare un file poi inserisco named per
l'esecuzione quindi lo avvio alla seconda chiamate ossia
(/etc/init.d/named star) esce eseguendo correttamente il comando!

Hai suggerimenti?
B9aa48577a4934dd46251413485ebac7?d=identicon&s=25 Luca de Marinis (Guest)
on 2007-01-16 20:53
(Received via mailing list)
Gianluca wrote:
>
>  #DNS server
> exec "chkconfig --add named"
>
Essi' il problema e' proprio l'exec... che sostituisce il processo con
quello exec'guito. Questa discussione contiene parecchie idee utili:
http://www.ruby-forum.com/topic/83740 ma in sostanza tu vuoi fare
`chkconfig --add named` , con i controapici. Se hai bisogno di piu'
controllo  invece dovresti dare un'occhiata a popen o open3.

Ciao
This topic is locked and can not be replied to.