Mostrar PID del proceso recién iniciado en ZSH

Mostrar PID del proceso recién iniciado en ZSH

¿Puedo mostrar el PID de un proceso que acabo de iniciar, idealmente al final de la línea del comando?

Example:
root in ~: mysqld .................. [PID 34567]
12121 mysql-logs start to come in...
12125 more logs...

Por ejemplo, cuando inicio dos mysqldprocesos y el segundo no "funciona" (puerto, etc.), no puedo determinar qué demonio tiene qué PID.

Ejemplo concreto:

mysqld >/dev/null                                                                                                                                     130 ↵
120126 15:44:05 [Note] Plugin 'FEDERATED' is disabled.
120126 15:44:05 InnoDB: The InnoDB memory heap is disabled
120126 15:44:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120126 15:44:05 InnoDB: Compressed tables use zlib 1.2.3
120126 15:44:05 InnoDB: Initializing buffer pool, size = 128.0M
120126 15:44:05 InnoDB: Completed initialization of buffer pool
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
120126 15:44:05  InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 35
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 35

No puedo ^+C, ^+D ni ^+Z el proceso y la única forma de saber qué proceso es es a través de la parte superior (como ya se mencionó). Debido al hecho de que ni siquiera puedo poner el proceso en segundo plano, no tengo una forma directa de obtener el PID. mysqld && eco$! muestra que $! es 0.

Me gustaría que se muestre el PID tan pronto como se inicie el proceso y luego comience la salida real.

Respuesta1

Después de leer tu último comentario entiendo que quieres saber el PID del proceso que estás buscando en tu terminal. Todos tenemos esta misma necesidad.
Esto es lo que suelo hacer:

Abro dos terminales.

En el primero leeré el resultado de mysqld:

touch   mysql.log
tail -f mysql.log

En el segundo lo ejecuto mysqlden segundo plano:

mysqld >mysql.log 2>&1 &
ps f

Utilizo esta segunda terminal para controlar/espiar mysqld.

Espero que esto pueda ayudar.
Salud.

Respuesta2

Podrías iniciar el proceso en segundo plano con:

mysqld &

Eso normalmente muestra el [pid]; si no, hazlo eco:

mysqld & echo pid=$!

Si desea ejecutar el demonio en primer plano, simplemente vuelva a ponerlo en primer plano:

mysqld & echo pid=$! ; fg

información relacionada