La commande de destruction de la console ne fonctionne pas sur Ubuntu

Bonjour, j’ai cette commande sur mon application Nodejs qui trouve un processus avec le nom de sortingm et le tue.

let killTrim = () => { console.log('kill "$(pgrep -f ' + sortingmName + '.mp4)"') cmd.run('kill "$(pgrep -f ' + sortingmName + '.mp4)"') sortingmName = null } 

Cela fonctionne parfaitement sur localhost sur mon ordinateur mais ne fonctionnera pas sur mon serveur (Ubuntu 16.04). Le journal de la console est généré, mais la commande cmd.run ne s’exécute pas sur le serveur. Quand je mets manuellement “kill” $ (pgrep -f moo.mp4) “” sur le serveur, il sera exécuté et tuera le processus.

J’ai fait des recherches sur la question, mais je n’ai pas pu trouver de problèmes similaires.

J’ai regardé sur votre pastebin. On dirait que pgrep -f ... renvoie plus d’un pid. Alors, essayez celui-ci:

 cmd.run('for a in $(pgrep -f '+sortingmName+'.mp4); do kill $a; done'); 

Je voudrais utiliser quelque chose de simple comme ci-dessous

 cmd = require('node-cmd'); cmd.get('pgrep -f node | xargs kill', (err, data, stderr) => { console.log(err, data, stderr); }); 

Cela fonctionnera même lorsque plusieurs processus sont en cours d’exécution

Processus terminés

Il semble que votre application de noeud ne dispose pas des droits suffisants pour tuer le processus. Vous pouvez essayer ce qui suit:

 sudo node app.js