Il modulo “child\_process” è uno dei moduli principali di Node.js che viene utilizzato principalmente per eseguire comandi di shell, come schema CPU o gestione di processi in background.
Ecco come puoi utilizzarlo per eseguire un comando shell:
1. Include il modulo nel tuo file.
```
const child_process = require(‘child_process’);
```
1. Esistono diversi metodi che puoi utilizzare per eseguire un comando shell, tra cui `exec()`, `spawn()`, `fork()`, etc.
Vediamo come utilizzare `exec()`:
```
child_process.exec(‘comando’, function(error, stdout, stderr) {
// il tuo callback qui
});
```
Nell’esempio sopra, “comando” è la stringa del comando shell che vuoi eseguire, mentre “error”, “stdout” e “stderr” sono callback che esegui dopo l’esecuzione del comando. “stdout” è l’output standard del comando, “stderr” è l’errore standard e “error” contiene dettagli dell’errore, se presenti.
Ad esempio, per ottenere il contenuto della directory corrente, utilizza il comando “ls”:
```
child_process.exec(‘ls’, function(error, stdout, stderr) {
console.log(‘Output:’, stdout);
console.error(‘Error:’, stderr);
```
const ls = child_process.spawn(‘ls’, [‘-lh’, ‘/usr’]);
ls.stdout.on(‘data’, (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on(‘data’, (data) => {
console.error(`stderr: ${data}`);
});
ls.on(‘close’, (code) => {
console.log(`child process exited with code ${code}`);
});
```
In questo esempio, “ls -lh /usr” è stato eseguito come processo figlio, scomponendo il comando e gli argomenti in array.
Ricordati che con `exec()` l’output viene memorizzato in buffer e restituito tutto in una volta come stringa, invece con `spawn()` si riceve l’output come uno stream.