Визначення застосованого додатку терміналу (iTerm2)


1

Чи можна виявити, яку термінальну програму використовують? Я хочу фактичне застосування, а не TERM env у цьому питанні.

Я хотів би виявити iTerm 2 / Terminal.app, щоб я міг встановити специфічні відображення клавіатури OSX, інакше PC.

(Подивитися ALT + стрілка, що переміщується між словами в zsh і iTerm2 )


Ви можете побачити, чи запущено програму з "ps -aux | grep iTem", але я точно не знаю, як би ви бачили, чи він "використовувався"
jds

Відповіді:



0

Я зробив наступний сценарій:

#!/bin/bash

pid=$$ # Current PID
ps -f $$ | head -n 1 # Show the header of ps
while [ $pid -gt 0 ]; do # No more parent when we reach 0 (the kernel)
        ps -f $pid | tail -n +2 # ps current pid and remove header
        pid=$(ps -o ppid $pid|tail -n 1) # Get parent pid
done

Він приймає поточний PID ( $$ в bash) і рекурсивно отримує батьківський PID, поки не досягнумо 0 (що є ядром), друкуючи ps -f виводити по шляху (і заголовок, щоб почати, з ps -f | head -n 1 )

Два обмеження:

  1. Якщо запустити SSH, батько буде sshd а не графічне застосування терміналу.
  2. Якщо виконано в окремому скрипті, він також роздрукує цей сценарій.

Однак ви повинні бути в змозі grep його вихід і виявлення, якщо один з батьківського процесу iTerm.app або Terminal.app виконується локально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.