Dino Geek, cerca di aiutarti

Come utilizzare il modulo Child Process per eseguire i comandi Shell?


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);

if (error !== null) { console.log(‘exec error:’, error); } }); ``` 1. Se vuoi eseguire un processo più grande o con un grande output, dovresti utilizzare `spawn()`:

```
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.


Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo