GNU/Linux >> Belajar Linux >  >> Linux

Cara menemukan file .pid untuk proses tertentu

Solusi 1:

Anda biasanya akan menemukan file PID untuk proses daemonisasi di /var/run/ pada sistem bergaya Redhat/CentOS.

Singkatnya, Anda selalu dapat melihat skrip proses init. Misalnya, daemon SSH dimulai dengan skrip di /etc/init.d/sshd . Terkadang PID akan ditentukan di sana (cari pid, PID, PIDFILE, PID_FILE, dll.).

Namun, sebagian besar daemon lain pada sistem gaya RHEL menggunakan /etc/init.d/functions skrip untuk beberapa fitur umum.

# 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}

Untuk apa pun yang bersumber /etc/init.d/functions , PID akan berada di /var/run/*.pid .

Untuk aplikasi khusus, PID akan ditentukan dalam skrip pembungkus (semoga). Namun, sebagian besar pengembang yang saya kenal mengikuti konvensi yang sama dengan daemon di atas.

Jika Anda lakukan menemukan sesuatu tanpa file PID, ingat bahwa Monit juga dapat memantau pola string proses.

Solusi 2:

Pendekatan lain yang saya ambil:

Saya memiliki server basis data yang berjalan dalam mode tersemat, dan datanya ada di dalam direktori aplikasi yang memuatnya.

Basis data memiliki sesuatu seperti file .pid, tetapi disebut file kunci. Untuk menemukan file kunci ini, saya mencantumkan semua file yang dibuka oleh aplikasi:

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

Itu memberi saya daftar panjang termasuk soket, pipa, file server, dll. Beberapa filter dan saya mendapatkan apa yang saya butuhkan:

$ 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. Cara memeriksa file besar di konsol

  2. Linux:Bagaimana Menemukan Driver Perangkat yang Digunakan Untuk Perangkat?

  3. Bagaimana Menemukan Jenis File Img Dan Memasangnya?

  1. Bagaimana Menemukan Id Proses (pid) Dari Program Terminal yang Berjalan?

  2. Periksa batas FD terbuka untuk proses tertentu di Linux

  3. cara menemukan pemilik file atau direktori dengan python

  1. Cara Menemukan File Terlama Di Pohon Direktori Di Linux

  2. Bagaimana Cara Menemukan Modul Kernel Untuk Perangkat yang Diberikan?

  3. Bagaimana Cara Menemukan Aplikasi Untuk Tipe Mime Di Linux?