Chamada pilha de comandos shell

1

Quando eu emito consecutivamente vários comandos que criam um novo shell, por exemplo

zsh
screen
su user2
mc
sudo su
mc

Existe um comando para mostrar a "pilha de chamadas", ou seja, uma lista dos comandos que ainda não terminaram, mas criou um novo shell?

Eu poderia ter emitido alguns outros comandos entre eles, então o histórico do shell não ajudará. Além disso, eu posso ter trocado usuários e shells como mostrado no exemplo acima.

Eu sei que posso encontrar essa informação usando a visualização em árvore em htop , mas posso obtê-la diretamente usando um comando?

    
por Melebius 08.02.2018 / 11:15

2 respostas

5

Você pode usar pstree (de PSmisc ) para isso:

pstree -s $$

A opção -s mostra os pais do identificador de processo especificado e $$ é o identificador do processo atual. pstree também mostra os filhos do identificador de processo especificado, então você terá algo como

systemd───systemd───gnome-terminal-───zsh───pstree

(com screen , sudo , su , mc etc. no seu caso).

    
por 08.02.2018 / 11:19
0

você pode tentar

ps -t $(tty)

onde

  • tty retornará seu tty atual (suponho que você esteja em sessão interativa).
  • $( tty) trará a saída na linha de comando.
  • ps -t listará todo o processo relacionado ao t ty.

você pode adicionar ps flag que você gosta. (por exemplo)

ps -t $(tty) -o stime,etime,args
    
por 08.02.2018 / 12:18

Tags