Newsgroup: it.comp.os.linux.sys
Titolo: Assegnare PID a programma

E' possibile assegnare il PID ad un programma in modo univoco all'avvio
del sistema?
 


 
IL Pid e' assegnato automaticamente dal kernel ed e' univoco
Se riesci a modificare il boot in modo che il programma che desideri 
abbia quel PID si
Oppure metti il tuo programma al posto di init (e naturalmente deve 
anche fare le stesse cose di init)
Init e' l' unico processo del sistema a livello user space di cui si sa 
con certezza che il PID e' 1
 

 
 
Giusto per curiosita`, quale problema si
cerca di risolvere con tale operazione?
 
bye,
 
-- 
 
piergiorgio


 
qui c'è una mezza soluzione applicabile da kernel 3.3, ma direi che più 
che un pid fisso è un pid predicibile:
http://stackoverflow.com/questions/18122592/how-to-set-process-id-in-linux-for-an-specific-program
 
 
però quoto domanda by Piergiorgio e primo commento:
 
 > Smells like an XY problem. Why do you need the pid in advance?
 
 

 del sistema?
 
I PID già vengono assegnati in modo univoco ALL'AVVIO DEL PROCESSO.
perché DEVE essere asegnato all'avvio del processo e non deve non essere
prevedibili (tu lo vuoi addirittura assegnare). Conoscere in anticipo il PID
di un processo *È* *MALE* gIà il fatti che init bbia PID uguale a 1 è una 
seccatura
 

 
http://stackoverflow.com/questions/18122592/how-to-set-process-id-in-linux-for-an-specific-program
 
 
Per fortuna non funziona così' perché assegnare i PID  incrementando 
un contatore non è una cosa tanto intelligente e molte distribuzioni 
fanno diversamente.
 
Comunque se l'exploit proposto dal sito funzionasse, e io dubito che
funzioni o che almeno sia sfruttabile, sarebbe un secondo shellshock.
 
 


interessante , non sapevo di questa future nel kernel
 
 
     Open /proc/sys/kernel/ns_last_pid and get fd
     flock it with LOCK_EX
     write PID -  1
     fork
 
 
Chissa' cosa succede se il pid esiste gia'
 
 
 
 


Per quale  motivo non devono essere prevedibili i PID ?
 

 Per quale  motivo non devono essere prevedibili i PID ?
 
Imprevedibili non saprei, ma credo non sia
molto corretto poterli definire di proprio
pugno.
Cosa succede se si definiscono *due* task
con lo stesso PID?
 
Quindi deve esserci un "authority" che si
occupa di gestire la cosa in maniera del
tutto imparziale.
 
bye,
 
-- 
 
piergiorgio

 con lo stesso PID?
 
Se va bene un crash di sistema, se va male un /craker/ porebbe
prendere il controllo e compromettere la sicurezza o leggere i 
nostri dati riservati. Sinceramente questa  seconda possibilità è
abbastanza remota, cioè già esistono ps, e top per sapere i PID,
perciò io ho paragonato questo ad un secondo /shellshock/ (io non
credo che meriti tutta l'attenzione che sta ricevendo). 
 
In realtà la pericolosità di avere PID prevedibili od assegnabili 
è piuttosto teorica ed è legata alla possibilità di sfruttarla per
stabilire un canale nascosto o per ricavare informazioni sul 
funzionamento del kerneL Cioè non è una cosa a portata di
uno /script/ /kiddie/.
 
 


Nei kernel unix il pid e' assegnato dal kernel ed e' garantito univoco 
ma abbastanza predicibile
 

 ma abbastanza predicibile
 
Non sappiamo ancora, pero`, quale sia il
motivo per cui l'OP vuole assegnare il
PID ai processi...
 
bye,
 
-- 
 
piergiorgio


Non ne ho idea
Forse per sapere dato un  determinato programma il suo PID ma per questo 
basta un ps -ef | grep <nome>
 

 ... ma per questo basta un ps -ef | grep <nome>
 
Magari fosse così semplice.
 
 
 


 
Lo e',basta aprire un term
 
 

 Lo e',basta aprire un term
 
Si certo ottima barzelletta, ma tu non lo hai mai fatto; prova a
fare uno script che sfrutta ps... grep... e poi ne riparliamo.
 


Carissimo, per me queste cose sono banalita'
 

 Carissimo, per me queste cose sono banalita'
 
Come risolvi l'ambiguità tra processi omonini?
 
 
-- 
Andrea
 

 Carissimo, per me queste cose sono banalita'
 
ROTLFMO Sei meglio di Franco e Ciccio!
 


Non si puo risolvere, basta dare al programma un nome ben chiaro che si 
spera restera' univoco nel sistema
 
 


Tu Ciccio ?
 

 spera restera' univoco nel sistema
 
Quindi sei d'accordo che usare ps e grep non � un buon metodo.
 
L'unica � il runfile in cui viene scritto il PID.
 
 
-- 
Andrea
 

 L'unica è il runfile in cui viene scritto il PID.
 
Soluzione (salvare il PID da qulche parte) per niente perfetta ma 
è l'unica praticabile.
 
E quindi torniamo all'origine: cosa vuole veramente fare l'OP?
 


 
se il programma usa questa tecnica e' sicuramente migliore
Purtroppo non tutti i programmi la usano,anzi,praticamente lo fanno solo 
i demoni o quasi
 

 i demoni o quasi
 
Questo perché a nessun programma interessa sapere il PID di un altro
programma che non è suo parente o non è un demone.
D'altra parte a quasi nessun programma (tranne qualche demone) è 
utile pubblicizzare il proprio PID.
 


Bella domanda, ma per ora senza risposta