GNU/Linux >> Znalost Linux >  >> Linux

Jak najít soubor .pid pro daný proces

Řešení 1:

Soubory PID pro démonizované procesy obvykle najdete v /var/run/ na systémech ve stylu Redhat/CentOS.

Krátce na to se můžete vždy podívat do skriptu procesu init. Například démon SSH se spouští pomocí skriptu v /etc/init.d/sshd . Někdy tam bude PID definováno (hledání pid, PID, PIDFILE, PID_FILE atd.).

Většina ostatních démonů na systémech ve stylu RHEL však pochází z /etc/init.d/functions skript pro některé běžné funkce.

# Set $pid to pids from /var/run* for {program}.  $pid should be declared
# local in the caller.
# Returns LSB exit code for the 'status' action.
__pids_var_run() {
        local base=${1##*/}
        local pid_file=${2:-/var/run/$base.pid}

Pro vše, co je zdrojem /etc/init.d/functions , PID bude žít v /var/run/*.pid .

U vlastních aplikací bude PID definováno ve skriptu obalu (doufejme). Většina vývojářů, které znám, se však řídí stejnou konvencí jako démoni výše.

Pokud uděláte narazíte na něco bez souboru PID, pamatujte, že Monit může monitorovat i vzor procesního řetězce.

Řešení 2:

Další přístup, který jsem zvolil:

Mám databázový server spuštěný v embedded režimu a data jsou v adresáři obsahující aplikaci.

Databáze má něco jako soubor .pid, ale nazývá to lock file. K nalezení tohoto souboru zámku jsem uvedl seznam všech souborů, které aplikace drží otevřené:

$ ls -l /proc/18264/fd | cut -d'>' -f2

To mi dalo dlouhý seznam včetně soketů, rour, serverových souborů atd. Pár filtrů a dostal jsem se k tomu, co jsem potřeboval:

$ ls -l /proc/18264/fd | cut -d'>' -f2 | grep /home/ | cut -b40- | sort | uniq | grep titan

/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/00000000.jdb
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.info.0
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.info.0.lck
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.lck

Linux
  1. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  2. Jak zkontrolovat velké soubory v konzole

  3. Linux:Jak najít ovladač zařízení používaný pro zařízení?

  1. Jak najít modul jádra pro dané zařízení?

  2. Jak najít aplikaci pro typ mime v systému Linux?

  3. Jak najít proces s maximálním počtem deskriptorů souborů?

  1. Jak zjistit typ souboru Img a připojit jej?

  2. Jak určím soubor klíče pro sshfs?

  3. Jak najít výchozího správce souborů?