Dare un process un nome specifico in GNU / Linux?

Come avviare un process in modo che avrà un identificatore specifico nel command ps ?

UPD : Ho un paio di server in esecuzione su una casella. La maggior parte di essi è in modalità di distribuzione. Tuttavia uno è in fase di sviluppo. Tutti i server sono Pythonic e la malattia è che tutti i server sono elencati come python in ps , il che rende imansible killall quello in sviluppo lasciando intatti gli altri.

UPD : Come suggerito da David e GNUix, ho creato un collegamento simile a interpnetworking Python e script bash per each server.

  • Come configurare Ubuntu Server per distriggersre le unità quando non vengono utilizzate?
  • Automatizzare l'impostazione intertriggers della configuration LXD?
  • Liberare la memory (RAM) su Ubuntu 8.04 Server
  • Ho due versioni di apache in esecuzione su Ubuntu, come posso rimuovere uno?
  • Montaggio degli obiettivi iSCSI da 2 diversi server di destinazione iSCSI su Ubuntu
  • Che process sta risorgendo mysqld?
  • Quanto spazio di swap per un server di virtualizzazione Ubuntu da 32 GB?
  • Cambiare i provider smtp di posta elettronica - cosa dovrei tenere in mente?
  • 4 Solutions collect form web for “Dare un process un nome specifico in GNU / Linux?”

    La creazione di un symlink dovrebbe fare il trucco, tuttavia, sarebbe più utile se sapessimo la malattia e non il sintomo. Cosa stai cercando di fare esattamente? Perché ci può essere un modo migliore

     gnuix@defiant)-(08:11pm-:-06/10)-- (~)./0012 my weird program name PID TTY TIME CMD 7805 pts/1 00:00:00 zsh 14020 pts/1 00:00:00 0012 14021 pts/1 00:00:00 ps (gnuix@defiant)-(08:11pm-:-06/10)-- (~)ln -s 0012 weird (gnuix@defiant)-(08:12pm-:-06/10)-- (~)./weird my weird program name PID TTY TIME CMD 7805 pts/1 00:00:00 zsh 14046 pts/1 00:00:00 weird 14047 pts/1 00:00:00 ps (gnuix@defiant)-(08:12pm-:-06/10)-- (~) 

    Aggiornamento: Sulla base delle informazioni aggiuntive che potresti (sono sicuro che c'è un modo più semplice ma che non è in arrivo a me in questo momento) i tuoi server scrivono il loro PID a un file all'avvio, allora potresti uccidere -9 | cat /var/run/devserver.pid ma poi che sarebbe una questione di programmazione 🙂

    Aggiornare nuovamente: Potresti anche fare un trucco di shell per get il PID dei server quando li lanci, al di sopra della mia testa puoi creare una function di shell chiamata startmyserver ad esempio che avvolge il command che utilizzi per avviare i server ma anche catturare $! a un file basato sul nome di avvio – allora stiamo parlando di script shell che è 'inbound' @ ServerFault. 🙂

    Potresti rinominare il binario che dovrai eseguire. Potresti scappare semplicemente usando un simbolo al binario.

    Se si desidera veramente cambiare il nome, il modo migliore consiste nell'utilizzare un semplice wrapper che imposta argv e quindi esegue il process che si desidera eseguire. Non hai tempo per darti un codice di esempio adesso, ma gridare ad alta voce in circa 10 ore e vedrò cosa posso fare.

    Questo non appartengono a SO perché è generico, non una domanda specifica per la lingua.

    La breve risposta non è facile. Cioè, non può essere fatto dall'interno della funzionalità del tuo shell o procfs / sysfs. Sarà necessario utilizzare un'utilità esterna per ottenerlo.

    C'è una lunga descrizione su come e perché qui . Attenzione che sia abbastanza C-centrico.

    Aggiornare:

    Sono pitone che cambia il gioco. Senza essere troppo SO, sarebbe probabilmente più facile modificarli per utilizzare questo module o un approccio simile.

    Guarda https://github.com/electrum/procname . Consente di impostare il nome di process di qualsiasi process utilizzando una variabile di ambiente.

    Uso:

    Eseguire Java con le variables di ambiente LD_PRELOAD e PROCNAME impostate:

    LD_PRELOAD = / path / to / libprocname.so PROCNAME = hello java -jar foo.jar

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.