TL; DR : grep
está errada, use find
com opções corretas
Se você stat /var/run
, descobrirá rapidamente que /var/run
é um link simbólico para /run
.
$ stat /var/run
File: /var/run -> /run
Size: 4 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 696874 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-02-07 13:17:01.225178554 +0800
Modify: 2017-12-18 20:44:12.898113636 +0800
Change: 2017-12-18 20:44:12.898113636 +0800
Então, você precisa mesmo do diretório /run
. Quanto à busca de arquivos com nome de arquivo específico, você precisa do comando find
:
$ find /run -name "*.pid"
/run/charon.pid
/run/starter.charon.pid
/run/dhclient-wlp2s0.pid
Como alguns arquivos nesse diretório pertencem ao root ou a outros usuários do sistema, talvez seja necessário usar esse comando com sudo
.
Como alternativa , você pode usar -L
flag para permitir os seguintes links simbólicos e chamar find
on /var/run
:
$ find -L /var/run -name "*.pid"
/var/run/charon.pid
/var/run/starter.charon.pid
/var/run/dhclient-wlp2s0.pid
Por favor, note também que grep
é uma ferramenta errada para o trabalho. grep
é para pesquisar padrões de texto dentro arquivos de texto, não em seus nomes de arquivos.
Você também mencionou:
/var/run stores the processes running in the system and it has files with pid extension
Isso é realmente incorreto. As informações do processo pertencem em /proc
. Os arquivos .pid
são simplesmente usados por alguns programas para impedir que várias cópias do mesmo processo sejam executadas (bem, uma das maneiras possíveis de usar esses arquivos). Veja esta postagem stackoverflow para referência, bem como esta resposta altamente votada em unix.se. Embora o diretório pertença ao usuário root, não presuma que seja apenas para aplicativos de inicialização e daemon; os scripts iniciados com permissões de root pelo usuário poderiam gravar no diretório com a mesma facilidade.