Ini adalah perintah pmcd yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
pmcd - daemon kolektor metrik kinerja
RINGKASAN
pmcd [-AfS] [-c config] [-C nama dirname] [-H hostname] [-i alamat IP] [-l file log] [-L byte]
[-[n|N] file pmns] [-p pelabuhan[,pelabuhan ...] [-P file sandi] [-q batas waktu] [-s nama kaus kaki] [-T
bendera jejak] [-t batas waktu] [-U nama pengguna] [-x fillet]
DESKRIPSI
pmcd adalah kolektor yang digunakan oleh Performance Co-Pilot (lihat Pengenalan PCP(1)) untuk berkumpul
metrik kinerja pada sistem. Sebagai aturan, harus ada instance dari pmcd berjalan pada
sistem untuk metrik kinerja apa pun yang tersedia untuk PCP.
pmcd menerima koneksi dari aplikasi klien yang berjalan baik pada mesin yang sama atau
dari jarak jauh dan memberi mereka metrik dan informasi terkait lainnya dari mesin
bahwa pmcd sedang dieksekusi. pmcd mendelegasikan sebagian besar layanan permintaan ini ke koleksi
Agen Domain Metrik Kinerja (atau hanya agen), di mana setiap agen bertanggung jawab untuk
sekelompok metrik tertentu, yang dikenal sebagai domain agen. Misalnya
postgresql agen bertanggung jawab untuk melaporkan informasi yang berkaitan dengan PostgreSQL
database, seperti jumlah transaksi dan kueri, pengindeksan dan statistik replikasi,
dan seterusnya.
Agen mungkin merupakan proses yang dimulai oleh: pmcd, proses independen atau Dynamic Shared
Objek (DSO, lihat jatuh(3)) melekat pada pmcdruang alamat. Bagian konfigurasi
di bawah ini menjelaskan bagaimana koneksi ke agen ditentukan.
Pilihan untuk pmcd adalah sebagai berikut.
-A Nonaktifkan iklan layanan. Secara default, pmcd akan mengiklankan kehadirannya di
jaringan menggunakan mekanisme yang tersedia (seperti Avahi/DNS-SD), membantu jarak jauh
alat pemantauan dengan menemukannya. Mekanisme ini dinonaktifkan dengan opsi ini.
-c config
Pada mulanya pmcd menggunakan file konfigurasi baik dari $PCP_PMCDCONF_PATH,
variabel konfigurasi di /etc/pcp.conf, atau variabel lingkungan yang sama
nama. Namun, nilai-nilai ini dapat diganti dengan config menggunakan opsi ini. Itu
format file konfigurasi ini dijelaskan di bawah ini.
-C nama dirname
Tentukan jalur ke database sertifikat Layanan Keamanan Jaringan, untuk
(opsional) koneksi aman. Standarnya adalah /etc/pki/nssdb. Rujuk juga ke
-P pilihan. Jika belum ada, database ini dapat dibuat dengan menggunakan
certutil kegunaan. Proses ini dan pemeliharaan basis data sertifikat lainnya
informasi disediakan dalam Pengenalan PCP(1) halaman manual dan PCP online
tutorial.
-f Secara default pmcd dimulai sebagai daemon. NS -f opsi menunjukkan bahwa itu harus dijalankan
di latar depan. Ini paling berguna ketika mencoba mendiagnosis masalah dengan
agen nakal.
-H hostname
Opsi ini dapat digunakan untuk mengatur nama host yang pmcd akan digunakan untuk mewakili ini
contoh dari dirinya sendiri. Ini digunakan oleh alat klien seperti pmlogger(1) saat melaporkan
pada host (mungkin jarak jauh). Jika opsi ini tidak disetel, metrik pmcd.hostname
akan cocok dengan yang dikembalikan oleh pmhostname(1). Lihat halaman manual untuk alat itu
untuk detail lengkap tentang bagaimana nama host dievaluasi.
-i alamat IP
Opsi ini biasanya hanya digunakan pada host dengan lebih dari satu antarmuka jaringan. Jika
tidak -i opsi ditentukan pmcd menerima koneksi yang dibuat ke IP host mana pun
(Protokol Internet) alamat. Itu -i opsi digunakan untuk menentukan IP secara eksplisit
alamat bahwa koneksi harus diterima. alamat IP harus di
bentuk titik-titik standar (misalnya 100.23.45.6). Itu -i opsi dapat digunakan beberapa kali
untuk menentukan daftar alamat IP. Koneksi yang dibuat ke alamat IP lain
tuan rumah telah akan ditolak. Ini dapat digunakan untuk membatasi koneksi ke satu jaringan
antarmuka jika host adalah gateway jaringan. Ini juga berguna jika tuan rumah mengambil
melalui alamat IP dari host lain yang gagal. Dalam situasi seperti itu hanya
alamat IP standar host harus diberikan (bukan yang diwarisi dari
tuan rumah gagal). Hal ini memungkinkan aplikasi PCP untuk menentukan bahwa sebuah host telah gagal,
daripada menghubungkan ke host yang telah mengasumsikan identitas yang gagal
tuan rumah.
-l file log
Secara default file log bernama pmcd.log ditulis dalam direktori $PCP_LOG_DIR/pmcd.
-l opsi menyebabkan file log ditulis ke file log alih-alih default.
Jika file log tidak dapat dibuat atau tidak dapat ditulis, output ditulis ke:
kesalahan standar sebagai gantinya.
-L byte
PDUs diterima oleh pmcd dari pemantauan klien dibatasi hingga ukuran maksimum
65536 byte secara default untuk bertahan dari serangan Denial of Service. Itu -L Option
dapat digunakan untuk mengubah maksimum yang masuk PDU ukuran.
-n file pmns
Biasanya pmcd memuat Ruang Nama Metrik Kinerja (PMNS) default dari
$PCP_VAR_DIR/pmns/root, namun jika -n opsi ditentukan sebagai alternatif
namespace dimuat dari file file pmns.
-N file pmns
Fungsi yang sama dengan -n, kecuali untuk penanganan Metrik Kinerja duplikat
Pengenal (PMID) di file pmns - nama duplikat diperbolehkan dengan -n mereka tidak
diperbolehkan dengan -N.
-P file sandi
Tentukan jalur ke file yang berisi sertifikat Layanan Keamanan Jaringan
kata sandi basis data untuk koneksi aman (opsional), dan untuk basis data yang
dilindungi kata sandi. Rujuk juga ke -C pilihan. Saat menggunakan opsi ini, bagus
perawatan harus dilakukan untuk memastikan kepemilikan yang tepat (pengguna "pcp", biasanya)
dan izin pada file ini (0400, sehingga tidak dapat dibaca oleh pengguna selain
pengguna menjalankan pmcd proses).
-q batas waktu
Protokol pertukaran versi pmcd ke agen (baru di PCP 2.0 - diperkenalkan untuk menyediakan
kompatibilitas mundur) menggunakan batas waktu ini untuk menentukan berapa lama pmcd harus menunggu
sebelum mengasumsikan bahwa tidak ada respons versi yang datang dari agen. Jika batas waktu ini
tercapai, agen dianggap sebagai agen yang tidak memahami PCP
2.0 protokol. Interval batas waktu default adalah lima detik, tetapi -q Option
memungkinkan interval batas waktu alternatif (yang harus lebih besar dari nol) menjadi
ditentukan. Satuan waktu adalah detik.
-S Mengharuskan semua koneksi klien memberikan kredensial pengguna. Ini berarti hanya
soket domain unix, atau koneksi yang diautentikasi diizinkan (memerlukan keamanan
dukungan soket). Jika ada persyaratan kontrol akses pengguna atau grup yang ditentukan
dalam file konfigurasi pmcd, maka mode operasi ini secara otomatis
dimasukkan, apakah -S bendera ditentukan atau tidak.
-s nama kaus kaki
Tentukan jalur ke soket domain unix lokal (untuk platform yang mendukung ini
keluarga soket saja). Nilai defaultnya adalah $PCP_RUN_DIR/pmcd.socket.
-t batas waktu
Untuk mencegah klien atau agen yang berperilaku buruk menggantung seluruh Pertunjukan
Sistem Pengumpulan Metrik (PMCS), pmcd menggunakan batas waktu pada pertukaran PDU dengan klien
dan agen berjalan sebagai proses. Secara default, interval waktu habis adalah lima detik.
-t opsi memungkinkan interval batas waktu alternatif dalam detik untuk ditentukan.
If batas waktu nol, batas waktu dimatikan. Hampir tidak mungkin untuk menggunakan
debugger secara interaktif pada agen kecuali batas waktu telah dimatikan untuknya
"induk" pmcd.
Sekali pmcd sedang berjalan, batas waktu dapat dimodifikasi secara dinamis dengan menyimpan bilangan bulat
nilai (batas waktu dalam detik) ke dalam metrik pmcd.control.timeout melalui toko sore(1).
-T bendera jejak
Untuk membantu diagnosis kesalahan untuk agen dan/atau klien dari pmcd bukan itu
berperilaku benar, mekanisme pelacakan peristiwa internal didukung di dalam pmcd.
Nilai dari bendera jejak ditafsirkan sebagai bidang bit dengan kontrol berikut:
fungsi:
1 aktifkan pelacakan koneksi klien
2 aktifkan pelacakan PDU
256 pelacakan acara tanpa buffer
Secara default, pelacakan peristiwa di-buffer menggunakan buffer melingkar yang ditulis berlebihan
sebagai peristiwa baru dicatat. Ukuran buffer default menampung 20 acara terakhir,
meskipun nomor ini mungkin berlebihan dengan menggunakan toko sore(1) untuk mengubah metrik
pmcd.control.tracebufs.
Demikian pula sekali pmcd sedang berjalan, kontrol penelusuran peristiwa mungkin dinamis
dimodifikasi dengan menyimpan 1 (aktifkan) atau 0 (nonaktifkan) ke dalam metrik
pmcd.control.traceconn, pmcd.control.tracepdu dan pmcd.control.tracenobuf. Ini
metrik memetakan ke bidang bit yang terkait dengan bendera jejak argumen untuk -T
.
Saat beroperasi dalam mode buffered, buffer jejak peristiwa akan dibuang setiap kali ada
koneksi agen diakhiri oleh pmcd, atau saat nilai apa pun disimpan ke dalam metrik
pmcd.control.dumptrace melalui toko sore(1).
Dalam mode tanpa buffer, setiap peristiwa akan dilaporkan ketika itu terjadi.
-U nama pengguna
Akun pengguna untuk menjalankan pmcd. Standarnya adalah "pcp" yang tidak memiliki hak istimewa
akun di versi PCP saat ini, tetapi dalam versi yang lebih lama akun pengguna super
("root") digunakan secara default.
-x fillet
Sebelum pmcd file log bisa dibuka, pmcd mungkin mengalami kesalahan fatal yang
mencegahnya untuk memulai. Secara default, output yang menjelaskan kesalahan ini dikirim ke
/dev/tty tapi mungkin dialihkan ke fillet.
Jika pertukaran PDU dengan agen time out, agen tersebut telah melanggar persyaratan bahwa:
memberikan metrik dengan sedikit atau tanpa penundaan. Ini dianggap sebagai kegagalan protokol dan agen
terputus dari pmcd. Setiap permintaan informasi selanjutnya dari agen akan
gagal dengan status yang menunjukkan bahwa tidak ada agen yang menyediakannya.
Dimungkinkan untuk menentukan kontrol akses ke pmcd berdasarkan pengguna, grup, dan host. Ini
memungkinkan seseorang untuk mencegah pengguna, grup pengguna, dan host tertentu mengakses metrik
disediakan oleh pmcd dan dijelaskan secara lebih rinci dalam Bagian tentang KONTROL AKSES di bawah ini.
KONFIGURASI
Pada mulanya pmcd mencari file konfigurasi bernama $PCP_PMCDCONF_PATH. File ini
menentukan agen mana yang mencakup domain metrik kinerja mana dan bagaimana pmcd harus membuat
kontak dengan agen. Bagian opsional yang menentukan kontrol akses dapat mengikuti
data konfigurasi agen.
peringatan: pmcd biasanya dimulai sebagai bagian dari urutan boot dan awalnya berjalan sebagai root.
File konfigurasi mungkin berisi perintah shell untuk membuat agen, yang akan dieksekusi
oleh akar. Untuk mencegah pelanggaran keamanan, file konfigurasi hanya dapat ditulis oleh:
akar. Penggunaan nama jalur absolut juga disarankan.
Kasus kata-kata yang dicadangkan dalam file konfigurasi tidak penting, tetapi di tempat lain,
kasus tersebut dipertahankan.
Baris dan komentar kosong diizinkan (bahkan dianjurkan) dalam file konfigurasi. SEBUAH
komentar dimulai dengan karakter ``#'' dan berakhir di akhir baris. Sebuah garis mungkin
dilanjutkan dengan memastikan bahwa karakter terakhir pada baris adalah ``\'' (garis miring terbalik). SEBUAH
komentar pada baris lanjutan berakhir di akhir baris lanjutan. Spasi mungkin disertakan
dalam elemen leksikal dengan melampirkan seluruh elemen dalam tanda kutip ganda. Sebuah kutipan ganda
didahului oleh garis miring terbalik selalu merupakan kutipan ganda literal. A ``#'' dalam tanda kutip ganda atau
didahului oleh garis miring terbalik diperlakukan secara harfiah daripada sebagai pembatas komentar. leksikal
elemen dan pemisah dijelaskan lebih lanjut di bagian berikut.
AGEN KONFIGURASI
Setiap baris dari bagian konfigurasi agen dari file konfigurasi berisi rincian
cara terhubung pmcd ke salah satu agennya dan menentukan metrik mana yang menjadi domain agen
terlibat dengan. Agen dapat dipasang sebagai DSO, atau melalui soket, atau sepasang pipa.
Setiap baris bagian konfigurasi agen dari file konfigurasi harus berupa:
spesifikasi agen, komentar, atau baris kosong. Elemen leksikal dipisahkan oleh
karakter spasi putih, namun spesifikasi agen tunggal tidak boleh terputus lintas baris
kecuali a \ (garis miring terbalik) digunakan untuk melanjutkan baris.
Setiap spesifikasi agen harus dimulai dengan label tekstual (string) diikuti dengan bilangan bulat
dalam rentang 1 hingga 510. Label adalah tag yang digunakan untuk merujuk ke agen dan bilangan bulat
menentukan domain tempat agen memasok data. Pengidentifikasi domain ini
sesuai dengan bagian domain dari PMID yang ditangani oleh agen. Setiap agen harus memiliki
label unik dan pengenal domain.
Untuk agen DSO garis formulir:
label domain-tidak dso titik masuk path
harus muncul. Di mana,
label adalah string yang mengidentifikasi agen
domain-tidak adalah bilangan bulat tidak bertanda yang menentukan domain agen dalam kisaran 1 hingga 510
titik masuk adalah nama fungsi inisialisasi yang akan dipanggil ketika DSO
dimuat
path menunjuk lokasi DSO dan ini diharapkan menjadi mutlak
nama jalur. pmcd hanya dapat memuat agen DSO yang memiliki hal yang sama simabi
(Subprogram Interface Model ABI, atau konvensi pemanggilan) sebagaimana adanya (mis
hanya satu dari simabi versi akan berlaku). Itu simabi versi
lari pmcd dapat ditentukan dengan mengambil pmcd.simabi. Kalau tidak,
itu fillet(1) perintah dapat digunakan untuk menentukan simabi versi dari
pmcd dapat dieksekusi.
Untuk seorang kerabat path variabel lingkungan PMCD_PATH mendefinisikan titik dua (:)
daftar direktori yang terpisah untuk dicari ketika mencoba menemukan agen DSO.
Jalur pencarian default adalah $PCP_SHARE_DIR/lib:/usr/pcp/lib.
Untuk agen yang menyediakan koneksi soket, garis formulir
label domain-tidak stopkontak addr-keluarga alamat [ Command ]
harus muncul. Di mana,
label adalah string yang mengidentifikasi agen
domain-tidak adalah bilangan bulat tidak bertanda yang menentukan domain agen dalam kisaran 1 hingga 510
addr-keluarga menunjukkan apakah soket ada di AF_INET, AF_INET6 or AF_UNIX domain,
dan nilai yang sesuai untuk parameter ini adalah tidak ada, ipv6 dan unix
masing.
alamat menentukan alamat soket dalam yang ditentukan sebelumnya tambahan-
keluarga. Untuk unix soket, alamatnya harus nama agen
socket pada host lokal (alamat yang valid untuk domain UNIX). Untuk inet
dan ipv6 soket, alamatnya dapat berupa nomor port atau nama port
yang dapat digunakan untuk terhubung ke agen di host lokal. Tidak ada
sintaks untuk menentukan agen pada host jarak jauh sebagai pmcd hanya berurusan dengan
agen pada mesin yang sama.
Command adalah parameter opsional yang digunakan untuk menentukan baris perintah untuk memulai agen
ketika pmcd inisialisasi. Jika Command tidak hadir, pmcd mengasumsikan bahwa
agen tertentu telah dibuat. Itu Command dianggap
mulai dari karakter non-putih pertama setelah alamat soket dan selesai
di baris baru berikutnya yang tidak didahului oleh garis miring terbalik. Setelah garpu(2) itu
Command diteruskan tanpa dimodifikasi ke eksekutif(2) untuk menginstansiasi agen.
Untuk agen yang berinteraksi dengan pmcd melalui stdin/stdout, baris formulir:
label domain-tidak pipa protokol Command
harus muncul. Di mana,
label adalah string yang mengidentifikasi agen
domain-tidak adalah bilangan bulat tidak bertanda yang menentukan domain agen
protokol Nilai untuk parameter ini harus biner.
Selain itu, protokol dapat mencakup belum siap kata kunci untuk menunjukkan bahwa
agen harus ditandai sebagai tidak siap untuk memproses permintaan dari pmcd.
Agen akan secara eksplisit memberi tahu pmcd jika sudah siap untuk diproses
permintaan dengan mengirimkan PM_ERR_PMDAREADY PDU.
Command menentukan baris perintah untuk memulai agen ketika pmcd inisialisasi. Catatan
bahwa Command adalah wajib untuk agen berbasis pipa. Itu Command dianggap
untuk memulai dari karakter non-kulit putih pertama setelah protokol parameter dan
selesai di baris baru berikutnya yang tidak didahului oleh garis miring terbalik. Setelah
garpu(2) itu Command diteruskan tanpa dimodifikasi ke eksekutif(2) untuk membuat instance
agen.
ACCESS PENGENDALIAN KONFIGURASI
Bagian kontrol akses dari file konfigurasi adalah opsional, tetapi jika ada harus
ikuti data konfigurasi agen. Kasus kata-kata yang dicadangkan diabaikan, tetapi di tempat lain
kasus dipertahankan. Elemen leksikal di bagian kontrol akses dipisahkan oleh
spasi putih atau karakter pembatas khusus: tanda kurung siku (``['' dan ``]''), kurung kurawal
(``{'' dan ``}''), titik dua (``:''), titik koma (``;'') dan koma (``,''). yang spesial
karakter tidak diperlakukan sebagai khusus di bagian konfigurasi agen. leksikal
elemen dapat dikutip (tanda kutip ganda) seperlunya.
Bagian kontrol akses file harus dimulai dengan baris formulir:
[mengakses]
Spasi awal dan akhir mungkin muncul di sekitar dan di dalam tanda kurung dan kasus
itu mengakses kata kunci diabaikan. Tidak boleh ada teks lain yang muncul di baris kecuali sebuah tambahan
komentar.
Mengikuti baris ini, sisa file konfigurasi harus berisi baris yang
mengizinkan atau melarang operasi dari host atau grup host tertentu.
Ada dua jenis operasi yang terjadi melalui pmcd:
mengambil memungkinkan pengambilan informasi dari pmcd. Ini mungkin informasi tentang
metrik (mis. deskripsinya, domain instance, atau teks bantuan) atau nilai untuk
sebuah metrik.
menyimpan memungkinkan pmcd untuk digunakan untuk menyimpan nilai metrik dalam agen yang mengizinkan penyimpanan
operasi. Ini mungkin nilai metrik yang sebenarnya (mis. menyetel ulang a
melawan nol). Atau, mungkin nilai yang digunakan oleh PMDA untuk
memperkenalkan perubahan pada beberapa aspek pemantauan metrik tersebut (misalnya server
penyaringan acara samping) - bahkan mungkin hanya untuk alat klien aktif
melakukan operasi toko, dan bukan yang lain.
Akses ke pmcd dapat diberikan dalam tiga cara - oleh pengguna, kelompok pengguna, atau pada tingkat host.
Dalam yang terakhir, semua pengguna di host diberikan tingkat akses yang sama, kecuali pengguna
atau mekanisme kontrol akses grup juga digunakan.
Nama pengguna dan nama grup akan diverifikasi menggunakan lokal / etc / passwd dan / etc / groups
file (atau layanan direktori alternatif), menggunakan dapatkan(3) dan dapatkan(3)
rutinitas.
Host dapat diidentifikasi dengan nama, alamat IP, alamat IPv6 atau oleh host khusus
spesifikasi ``"unix:"'' atau ``"local:"''. ``"unix:"'' mengacu pada pmcd's domain unix
socket, pada platform yang didukung. ``"local:"'' sama dengan menentukan ``"unix:"'' dan
``host lokal``.
Wildcard juga dapat ditentukan dengan mengakhiri pengidentifikasi host dengan wildcard tunggal
karakter ``*'' sebagai komponen alamat yang diberikan terakhir. Karakter pengganti ``".*"'' mengacu pada
semua alamat inet (IPv4). Wildcard ``":*"'' merujuk ke semua alamat IPv6. Jika
Wildcard IPv6 berisi komponen ``::'', lalu ``*'' terakhir merujuk ke 16 final
bit alamat saja, jika tidak mengacu pada bit yang tidak ditentukan yang tersisa dari
alamat.
Karakter pengganti ``*'' merujuk ke semua pengguna, grup, atau alamat host, termasuk ``"unix:"''.
Nama pengguna, grup, atau host tidak boleh menggunakan karakter pengganti.
Berikut ini adalah semua pengidentifikasi host yang valid:
Boing
localhost
cekikikan.melbourne.sgi.com
129.127.112.2
129.127.114. *
129. *
.*
fe80::223:14ff:feaf:b62c
fe80::223:14ff:feaf:*
fe80:*
:*
"unix:"
"lokal:"
*
Berikut ini bukan pengidentifikasi host yang valid:
*.melbourne
129.127.*.*
129.*.114.9
129.127 *
fe80::223:14ff:*:*
fe80::223:14ff:*:b62c
fe80*
Contoh pertama tidak diperbolehkan karena hanya alamat IP (numerik) yang boleh berisi
kartu pengganti. Contoh kedua dan kelima tidak valid karena jumlahnya lebih dari satu
karakter wildcard. Yang ketiga dan keenam berisi wildcard yang disematkan, yang keempat dan
ketujuh memiliki karakter wildcard yang bukan merupakan komponen terakhir dari alamat (yang terakhir
komponen masing-masing adalah 127* dan fe80*).
Nama localhost diberikan perlakuan khusus untuk membuat perilaku host wildcarding
konsisten. Alih-alih menjadi 127.0.0.1 dan ::1, ini dipetakan ke inet utama dan
Alamat IPv6 terkait dengan nama host tempat pmcd sedang berlari. Hati-hati terhadap
ini saat berlari pmcd pada host multi-home.
Akses untuk pengguna, grup, atau host diizinkan atau tidak diizinkan dengan menetapkan pernyataan
formulir:
mengizinkan Pengguna Daftar pengguna : operasi ;
larang Pengguna Daftar pengguna : operasi ;
mengizinkan kelompok daftar grup : operasi ;
larang kelompok daftar grup : operasi ;
mengizinkan host daftar tuan rumah : operasi ;
larang host daftar tuan rumah : operasi ;
daftar Daftar pengguna, daftar grup dan daftar tuan rumah adalah daftar yang dipisahkan koma dari satu atau lebih
pengguna, grup, atau pengidentifikasi host.
operasi adalah daftar dipisahkan koma dari jenis operasi yang dijelaskan di atas, semua (yang
mengizinkan/melarang semua operasi), atau semua kecuali operasi (yang
mengizinkan/melarang semua operasi kecuali yang terdaftar).
Bentuk jamak atau tunggal dari Pengguna, kelompok, dan host kata kunci diperbolehkan. Jika ini
kata kunci dihilangkan, default dari host akan digunakan. Perilaku ini untuk mundur-
kompatibilitas saja, lebih baik untuk eksplisit.
Dimana tidak ada yang spesifik mengizinkan or larang pernyataan berlaku untuk operasi, defaultnya adalah untuk
memungkinkan operasi dari semua pengguna, grup, dan host. Dalam kasus sepele ketika ada
tidak ada bagian kontrol akses di file konfigurasi, semua operasi dari semua pengguna,
grup, dan tuan rumah diizinkan.
Jika koneksi baru ke pmcd dicoba oleh pengguna, grup, atau host yang tidak diizinkan untuk
melakukan operasi apa pun, koneksi akan segera ditutup setelah respons kesalahan
PM_ERR_IZIN telah dikirim ke klien yang mencoba koneksi.
Pernyataan dengan level wildcarding yang sama yang menentukan host identik mungkin tidak
bertentangan satu sama lain. Misalnya jika host bernama mendering memiliki alamat IP dari
129.127.112.2, menetapkan dua aturan berikut akan menjadi salah:
izinkan host clank : ambil, simpan;
larang host 129.127.112.2 : semua kecuali fetch;
karena keduanya merujuk ke host yang sama, tetapi tidak setuju apakah mengambil operasi
diizinkan dari tuan rumah itu.
Pernyataan yang berisi spesifikasi host yang lebih spesifik mengesampingkan yang kurang spesifik
sesuai dengan tingkat wildcarding. Misalnya aturan bentuk
izinkan host clank : semua;
menimpa
larang host 129.127.112.* : semua kecuali fetch;
karena yang pertama berisi nama host tertentu (setara dengan IP yang ditentukan sepenuhnya
alamat), sedangkan yang terakhir memiliki wildcard. Pada gilirannya, yang terakhir akan menimpa
larang host * : semua;
Dimungkinkan untuk membatasi jumlah koneksi dari pengguna, grup, atau host ke pmcd.
Ini dapat dilakukan dengan menambahkan klausa dari bentuk
maksimum n koneksi
ke operasi daftar sebuah mengizinkan penyataan. Klausa seperti itu tidak boleh digunakan dalam a larang
penyataan. Di Sini, n adalah jumlah maksimum koneksi yang akan diterima dari
pengguna, grup, atau host yang cocok dengan pengidentifikasi yang digunakan dalam pernyataan.
Pernyataan kontrol akses dengan daftar pengidentifikasi pengguna, grup atau host adalah setara
ke satu set pernyataan kontrol akses, dengan masing-masing menentukan salah satu pengidentifikasi di
list dan semua dengan kontrol akses yang sama (baik izin maupun batas koneksi). SEBUAH
grup harus digunakan jika Anda ingin pengguna berkontribusi pada batas koneksi bersama. SEBUAH
wildcard harus digunakan jika Anda ingin host berkontribusi pada batas koneksi bersama.
Saat klien baru meminta koneksi, dan pmcd telah menentukan bahwa klien telah
izin untuk terhubung, ia mencari daftar pernyataan kontrol akses yang cocok untuk
kecocokan paling spesifik yang berisi batas koneksi. Untuk singkatnya, ini akan disebut
pernyataan yang membatasi Jika tidak ada pernyataan yang membatasi, klien diberikan a
koneksi. Jika ada pernyataan pembatas dan banyaknya pmcd klien dengan ID pengguna,
ID grup, atau alamat IP yang cocok dengan pengenal dalam pernyataan pembatas kurang dari
batas koneksi dalam pernyataan, koneksi diperbolehkan. Jika tidak,
batas koneksi telah tercapai dan klien ditolak koneksinya.
Kontrol akses grup dan karakter pengganti di pengidentifikasi host berarti bahwa sekali pmcd
benar-benar menerima koneksi dari klien, koneksi dapat berkontribusi pada arus
jumlah koneksi lebih dari satu pernyataan kontrol akses - host klien mungkin cocok
lebih dari satu pernyataan kontrol akses, dan juga ID pengguna mungkin ada di lebih dari satu
kelompok. Ini mungkin penting untuk permintaan koneksi berikutnya.
Perhatikan bahwa pmcd memasuki mode di mana ia berjalan secara efektif dengan tingkat keamanan yang lebih tinggi sebagai
segera setelah bagian kontrol akses pengguna atau grup ditambahkan ke konfigurasi. Di dalam
hanya mode koneksi yang diautentikasi yang diizinkan - baik dari SASL yang diautentikasi
koneksi, atau soket domain Unix (yang secara implisit melewati kredensial klien). Ini
mode yang sama yang dimasukkan secara eksplisit menggunakan -S pilihan. Dengan asumsi izin adalah
diperbolehkan, seseorang dapat menentukan apakah pmcd sedang berjalan dalam mode ini dengan menanyakan nilai
itu pmcd.fitur.creds_required metrik.
Perhatikan juga bahwa karena semantik pencocokan paling spesifik digunakan saat memeriksa koneksi
limit, untuk kasus kontrol akses berbasis host, prioritas diberikan kepada klien dengan lebih banyak
pengidentifikasi host tertentu. Dimungkinkan juga untuk melampaui batas koneksi di beberapa
situasi. Pertimbangkan hal berikut:
izinkan host clank : semua, maksimal 5 koneksi;
izinkan host * : semua kecuali toko, maksimum 2 koneksi;
Ini mengatakan bahwa hanya 2 koneksi klien pada satu waktu yang diizinkan untuk semua host selain
"dentang", yang diizinkan 5. Jika klien dari host "boing" adalah yang pertama terhubung ke
pmcd, koneksinya diperiksa terhadap pernyataan kedua (yang paling spesifik
cocok dengan batas koneksi). Karena tidak ada klien lain, koneksi diterima
dan berkontribusi terhadap batas hanya untuk pernyataan kedua di atas. Jika klien berikutnya
terhubung dari "dentang", koneksinya diperiksa terhadap batas untuk yang pertama
penyataan. Tidak ada koneksi lain dari "clank", jadi koneksi diterima.
Setelah koneksi ini diterima, itu diperhitungkan kedua batas pernyataan karena
"dentang" cocok dengan pengidentifikasi host di kedua pernyataan. Ingatlah bahwa keputusan untuk
menerima koneksi baru dibuat hanya dengan menggunakan kontrol akses pencocokan yang paling spesifik
pernyataan dengan batas koneksi. Sekarang, batas koneksi untuk pernyataan kedua telah
telah tercapai. Koneksi apa pun dari host selain "dentang" akan ditolak.
Jika sebaliknya, pmcd tanpa klien melihat tiga koneksi berturut-turut datang dari "boing",
dua yang pertama akan diterima dan yang ketiga ditolak. Setelah itu, jika ada koneksi
diminta dari "dentang" itu akan diterima. Ini cocok dengan pernyataan pertama, yaitu
lebih spesifik daripada yang kedua, jadi batas koneksi yang pertama digunakan untuk menentukan
bahwa klien memiliki hak untuk terhubung. Sekarang ada 3 koneksi yang berkontribusi pada
batas koneksi pernyataan kedua. Meskipun batas koneksi untuk yang kedua
pernyataan telah terlampaui, koneksi sebelumnya dari "boing" dipertahankan. Itu
batas koneksi hanya diperiksa pada saat klien mencoba koneksi daripada
sedang dievaluasi ulang setiap kali klien baru terhubung ke pmcd.
Skema lembut ini dirancang untuk memungkinkan batasan yang masuk akal untuk dikenakan pada yang pertama datang
dasar dilayani pertama, dengan pengecualian khusus.
Seperti yang diilustrasikan oleh contoh di atas, koneksi klien dihormati setelah itu
diterima. Namun, pmcd konfigurasi ulang (lihat bagian berikutnya) mengevaluasi kembali semua
koneksi dihitung dan akan menyebabkan koneksi klien terputus di mana koneksi membatasi
telah terlampaui.
MENGONFIGURASI ULANG PMCD
Jika file konfigurasi telah diubah atau jika agen tidak merespons karena telah
dihentikan atau PMNS diubah, pmcd dapat dikonfigurasi ulang dengan mengirimkan SIGHUP,
seperti dalam
# pmsignal -a -s HUP pmcd
Ketika pmcd menerima SIGHUP, ia memeriksa file konfigurasi untuk perubahan. Jika file
telah dimodifikasi, diurai dan isinya menjadi konfigurasi baru. Jika ada
adalah kesalahan dalam file konfigurasi, konfigurasi yang ada dipertahankan dan
isi file diabaikan. Kesalahan dilaporkan dalam pmcd berkas log.
Itu juga memeriksa file PMNS untuk perubahan. Jika file PMNS telah dimodifikasi, maka itu adalah
dimuat ulang. Penggunaan ekor(1) pada file log direkomendasikan saat mengkonfigurasi ulang pmcd.
Jika konfigurasi untuk agen telah berubah (parameter apa pun kecuali label agen adalah
berbeda), agen di-restart. Agen yang konfigurasinya tidak berubah tidak
dimulai ulang. Semua agen yang ada yang tidak ada dalam konfigurasi baru akan dihentikan. Setiap
agen yang meninggal adalah yang masih terdaftar di-restart.
Terkadang perlu untuk me-restart agen yang masih berjalan, tetapi tidak berfungsi.
Cukup hentikan agen (misalnya menggunakan SIGTERM dari sinyal malam(1)), lalu kirim pmcd sebuah SIGHUP,
yang akan menyebabkan agen di-restart.
MULAI DAN HENTI PMCD
Biasanya, pmcd dimulai secara otomatis saat boot dan berhenti saat sistem sedang
diturunkan (lihat rc2(1M) dan rc0(1M)). Dalam keadaan tertentu perlu untuk
mulai atau berhenti pmcd secara manual. Untuk melakukan ini, seseorang harus menjadi superuser dan mengetik
# $PCP_RC_DIR/pmcd mulai
untuk memulai pmcd, atau
# $PCP_RC_DIR/pmcd berhenti
untuk menghentikan pmcd. Memulai pmcd ketika sudah berjalan sama dengan menghentikannya dan
kemudian memulainya lagi.
Terkadang mungkin perlu dimulai ulang pmcd selama fase lain dari proses boot.
Bagian proses booting yang memakan waktu sering kali diletakkan di latar belakang untuk memungkinkan
sistem akan tersedia lebih cepat (misalnya memasang database besar). Jika agen dijalankan oleh pmcd
membutuhkan tugas seperti itu untuk diselesaikan sebelum dapat berjalan dengan baik, perlu untuk memulai ulang atau
konfigurasikan ulang pmcd setelah tugas selesai. Pertimbangkan, misalnya, kasus pemasangan a
database di latar belakang saat boot. Jika PMDA yang menyediakan metrik tentang
database tidak dapat berfungsi sampai database dipasang dan tersedia tetapi pmcd is
dimulai sebelum database siap, PMDA akan gagal (namun pmcd akan tetap melayani
permintaan metrik dari domain lain). Jika database diinisialisasi dengan menjalankan a
skrip shell, menambahkan baris ke akhir skrip untuk mengkonfigurasi ulang pmcd (dengan mengirimkannya sebagai
SIGHUP) akan restart PMDA (jika keluar karena tidak bisa konek ke database).
Jika PMDA tidak keluar dalam situasi seperti itu, maka perlu dimulai ulang pmcd karena
jika PMDA masih berjalan pmcd tidak akan memulai ulang.
Biasanya pmcd mendengarkan koneksi klien pada nomor port TCP/IP 44321 (terdaftar di
http://www.iana.org/). Entah variabel lingkungan PMCD_PORT atau itu -p command line
opsi dapat digunakan untuk menentukan nomor port alternatif ketika pmcd dimulai; di setiap
kasus, spesifikasi adalah daftar dipisahkan koma dari satu atau lebih nomor port numerik.
Haruskah kedua metode digunakan atau digandakan? -p opsi muncul di baris perintah, pmcd akan
dengarkan penyatuan set port yang ditentukan melalui semua -p pilihan dan PMCD_PORT
variabel lingkungan. Jika port non-default digunakan dengan pmcd harus diperhatikan
memastikan bahwa PMCD_PORT juga diatur dalam lingkungan aplikasi klien apa pun yang akan
terhubung ke pmcd, atau bahwa sintaks spesifikasi host yang diperluas digunakan (lihat Pengenalan PCP(1)
untuk lebih jelasnya).
Gunakan pmcd online menggunakan layanan onworks.net