web-dev-qa-db-fra.com

Comment empêcher un processus d'être tué?

Y a-t-il un moyen d'empêcher un processus d'être tué quoi qu'il en soit? Je connais Nice mais je ne sais pas si le fait de donner à une tâche longue comme une longue tâche gourmande en mémoire rake la priorité la plus élevée l'empêchera de la tuer:

Nice -n -20 rake xyz

Edit: l’affiche originale souhaite très probablement qu’elle soit prioritaire même si le serveur manque également de ressources, à tel point que d’autres processus sont tués en premier.

3
Simpleton

Pourquoi serait il serait tué?

Parce que ce n'est pas automatique que quelque chose soit tué. Une fois que vous aurez répondu à cette question et expliqué pourquoi un élément serait détruit, vous pourrez peut-être trouver une solution.

Étant donné que vous parlez de la commande rake de Rails, je suppose qu'il s'agit d'un processus s'exécutant sur un serveur. Le fait que vous craigniez que cet assassinat vous inquiète donne à penser que le serveur hôte l'a tué pour avoir utilisé trop de ressources. Dans de tels cas, il n'y a pas (et il ne devrait pas y avoir) de moyens d'arrêter votre processus pour être tué.

Si vous avez une tâche coûteuse en ressources, achetez plus de ressources. Utilisez votre propre temps serveur. Ou arrivez à un arrangement avec l'hôte qui vous permet de l'exécuter à sa guise.

5
Oli

Vous ne pouvez pas empêcher root de tuer un processus. Ou d'ailleurs: vous ne pouvez pas empêcher le serveur de tuer un processus qui consomme toutes vos ressources.

Ce que vous pouvez faire, c'est de brancher la commande pour qu'elle se redémarre automatiquement lorsqu'elle est tuée.

Exemple utilisant le code:

3
Rinzwind