Ti ringrazio per la risposta, ho provato la tua funzione, ma lo stesso la system() mi restituisce 0.

Stando al manuale, ad ogni modo, il primo controllo che fai, in realtà dovrebbe essere equivalente al secondo (se non per l'@) perchè la $return_var dovrebbe essere l'output del comando nel caso questo venga eseguito correttamente, oppure false nel caso ci siano degli errori in fase di esecuzione (oppure 0, come il mio caso).

La cosa strana è che se anche io eseguo un semplice comando come "ls", di nuovo la system() (ma anche exec() e passthru() ) mi restituisce lo stesso PHP Notice e la $return_var è di nuovo uguale a 0.
Invece se faccio eseguire una stringa casuale, sicuramente sbagliata, la $return_var mi restituisce 1
La cosa sorprendente è che nonostante i comandi siano giusti e corretti, vedi il caso IZArc e anche "ls", e vengano eseguiti correttamente lato server, il valore restituito è sempre di errore, come se il comando non fosse stato eseguito correttamente.

Forse non ho ben capito il funzionamento di tali funzioni, ma il Manuale PHP mi sembra abbastanza chiaro nella sua incompletezza...