¡Una nueva sección! Después de tanto tiempo y tantas secciones inacabadas. Algo que tenía ganas de hacer, es crear posts con esa serie de recetas, scripts, oneliners, o píldoras que se me van ocurriendo mientras trabajo en consola. Suelen ser cosas pequeñas y deberían caber en un tweet junto con una pequeña descripción. De todas formas a mí me gusta explicar un poco más las cosas para que quede bien claro.
En este caso, vamos a empezar conociendo el tiempo que lleva abierto un proceso, o un programa. Puede ser una información útil si, por ejemplo, tenemos corriendo servicios que ante un problema se reinician solos. O porque simplemente queremos saber ese dato, al igual que: ¿cuánto tiempo llevo con el ordenador encendido? que podemos responder con uptime. En este caso queremos saber cuánto tiempo llevo con un programa arrancado, como puede ser firefox, spotify, chrome, o apache.
Tabla de contenidos
Al grano
Vamos a poner dos métodos que iré explicando más adelante:
O de una forma más corta, podemos utilizar
Donde veremos primero el PID, luego el tiempo y luego el nombre del proceso.
Explicando el primero
En el primer ejemplo, lo primero que hacemos es coger el ID del proceso (PID).
Tras ello, sacaremos la fecha y hora en formato UNIX del momento actual (como siempre, esto será el número de segundos desde el 1 de Enero de 1970 a las 00:00).
Luego consultaremos la fecha del directorio /proc/PID y la pondremos en formato UNIX también. Recordemos que todos los procesos tendrán un directorio virtual en /proc/ con información sobre los mismos.
El objetivo es restar las dos fechas, así obtenemos el número de segundos transcurridos desde que se inició el proceso. .
Ahora sólo queda ponerlo en un formato más humano, es decir, en días, horas, minutos y segundos. Para ello, el número de días lo podemos sacar a mano, ya que sería $s (el número de segundos) dividido entre 86400 (los segundos que tiene un día). Pero el resto se lo podemos pedir al comando date. Lo hacemos así porque date presenta fechas y horas (1 de Enero de 2017 a las 12:34:45) no tiempos transcurridos (120 días 3 horas, 4 minutos, 5 segundos), aunque la hora actual es lo mismo que pedir el tiempo transcurrido desde las 00:00.
Podríamos también calcular todos los elementos a mano (días, horas, minutos y segundos), el problema es que el script ya no entraba en un tweet:
El segundo ejemplo, con ps
Este segundo ejemplo, será mucho más portable entre sistemas UNIX, y mucho más corto, es verdad, pero no nos da mucho juego a la hora de escoger el formato de salida. El formato del tiempo será fijo (días-horas:minutos:segundos) y será importante visualizar el PID o el nombre del proceso.
Además, es mucho más lento, ya que con ps estamos analizando el tiempo de todos los procesos del sistema, aunque luego en pantalla sólo mostremos el que nos interesa porque la salida de ps la hemos pasado por grep.
Pingback: Píldora #Bash: Conocer el tiempo que lleva un proceso abierto en Linux | PlanetaLibre /
pidof devuelve más de un PID si hay varios procesos abiertos. Mejor así: for pid in $(pidof firefox); do s=$(($(date +%s)-$(stat -c %Y /proc/$pid))); echo $pid: $(date -ud «@$s» +»$(($s/86400)) dias %Hh:%Mm:%Ss») ; done
Muy cierto, pidof tal vez nos devuelva más de una PID. Gracias por la puntualización.
Lo malo es que con un for ya no me cabe la píldora en un tweet 🙂
Pingback: Píldora #Bash: Conocer el tiempo que lleva un proceso abierto en Linux – Poesía Binaria – ProyectoTicTac /
Es supermolesto que esten las frases borrandose y escribiendose todo el rato… ni siquiera soy capaz de concentrarme con esta ventana abierta.
Una pena porque parece interesante lo que cuentas.
These web slots redefine the meaning of ‘big wins.’ Can’t wait to dive in. สล็อตค่ายใหญ่
Now you’ll discover what is vital, everything gives a url to the engaging page: pasar123 slot
It’s disappointing when a favorite slot breaks unexpectedly. Time for manufacturers to take notice! เว็บสล็อตแตกง่าย
I urge you to peruse this content it is fun portrayed … เว็บสล็อตทุกค่าย
It is fine, in any case assess the data and actualities around this right. สล็อตโรม่า
Benefit as much as possible from primarily premium substances – you will discover him or her for: ป๊อกเด้งออนไลน์
I am keen on such themes so I will address page where it is cool depicted. concierge doctor
I appreciate that online casinos promote responsible gaming. Setting limits and being mindful of your play is encouraged, ensuring a positive and enjoyable experience. 프리카지노
Nothing beats the excitement of a winning streak at the casino. 로즈카지노
Hallo guys, selamat datang di situs OKEPLAY777, pernahkah anda mendengar atau sudah bermain disini ?, Mari kita bahas sedikit tentang kelebihan situs slot online ini, sebagai situs slot gacor hari ini yang menggunakan slot server thailand terbaru gampang menang dengan winrate tertinggi di bandingkan situs lain, bermain di OKEPLAY777 memiliki experience yang berbeda pada saat mendapatkan kemenangan sensasional hanya dengan modal deposit slot dana Rp.15,000 dan menang berapapun di bayar tanpa potongan.
Let us start your academic journey together and reach the other side of success smoothly! 代写
This is not just because of the high quality of their services, but also because of their high cost of living and investment in education. 美国代写
Get ready to win big at Woori Casino’s thrilling games. 키워드