# Script + EXEC

**URL:** <https://www.ruby-forum.com/t/script-exec/81925>\
**Category:** IT\
**Created:** [January 16, 2007, 9:32am UTC](https://www.ruby-forum.com/t/script-exec/81925 "2007-01-16T09:32:34Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![gladenko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@gladenko](https://www.ruby-forum.com/u/gladenko)\
**Post date:** [January 16, 2007, 9:32am UTC](https://www.ruby-forum.com/t/script-exec/81925/1 "2007-01-16T09:32:34Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![gladenko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@gladenko](https://www.ruby-forum.com/u/gladenko)\
**Post date:** [January 16, 2007, 9:54am UTC](https://www.ruby-forum.com/t/script-exec/81925/2 "2007-01-16T09:54:36Z")

</div>

On mar, 2007-01-16 at 09:30 +0100, Gianluca R. 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 ?

---

<div class="post-metadata">

**Author:** ![gladenko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@gladenko](https://www.ruby-forum.com/u/gladenko)\
**Post date:** [January 16, 2007, 7:15pm UTC](https://www.ruby-forum.com/t/script-exec/81925/3 "2007-01-16T19:15:13Z")

</div>

Roberto De Ioris wrote:

> On mar, 2007-01-16 at 09:30 +0100, Gianluca R. 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?

---

<div class="post-metadata">

**Author:** ![gladenko](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/43a26b/32.png) [@gladenko](https://www.ruby-forum.com/u/gladenko)\
**Post date:** [January 16, 2007, 8:53pm UTC](https://www.ruby-forum.com/t/script-exec/81925/4 "2007-01-16T20:53:27Z")

</div>

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:  
[Equivalente esplicito di `...`? - IT - Ruby-Forum](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
