{"id":834,"date":"2026-09-19T17:01:02","date_gmt":"2026-09-19T17:01:02","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/?p=834"},"modified":"2026-09-19T09:31:34","modified_gmt":"2026-09-19T09:31:34","slug":"linux-islem-yonetimi-ps-top-kill","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/linux-islem-yonetimi-ps-top-kill\/","title":{"rendered":"Linux&#8217;ta \u0130\u015flem Y\u00f6netimi: ps, top ve kill Kullan\u0131m\u0131"},"content":{"rendered":"<div class=\"aiw-summary\" id=\"aiw-ozet\">\n<p class=\"aiw-summary-title\">H\u0131zl\u0131 \u00d6zet &#8211; Linux \u0130\u015flem Y\u00f6netimi<\/p>\n<p>Linux&#039;ta i\u015flemleri g\u00fcvenli y\u00f6netmek i\u00e7in \u00f6nce g\u00f6zlemleyin, sonra i\u015flemi do\u011frulay\u0131n ve en nazik sinyalle m\u00fcdahale edin.<\/p>\n<ul>\n<li><strong>Anl\u0131k liste<\/strong> \u2014 ps, \u00e7al\u0131\u015fan i\u015flemleri PID, kullan\u0131c\u0131, CPU ve bellek bilgileriyle g\u00f6sterir.<\/li>\n<li><strong>Canl\u0131 izleme<\/strong> \u2014 top, y\u00fck ortalamas\u0131n\u0131 ve kaynak t\u00fcketimini s\u00fcrekli yenilenen ekranda sunar.<\/li>\n<li><strong>PID do\u011frulama<\/strong> \u2014 \u0130\u015flemi kapatmadan \u00f6nce PID, komut sat\u0131r\u0131, kullan\u0131c\u0131 ve ebeveyn s\u00fcrecini kontrol edin.<\/li>\n<li><strong>Nazik sinyal<\/strong> \u2014 kill PID veya kill -TERM PID, uygulamaya kontroll\u00fc kapanma f\u0131rsat\u0131 verir.<\/li>\n<li><strong>Zorla kapatma<\/strong> \u2014 kill -9 yaln\u0131zca SIGTERM&#039;e yan\u0131t vermeyen i\u015flemlerde son \u00e7are olarak kullan\u0131lmal\u0131d\u0131r.<\/li>\n<li><strong>K\u00f6k neden<\/strong> \u2014 Y\u00fcksek CPU veya RAM kullan\u0131m\u0131nda log, disk, swap ve servis politikas\u0131n\u0131 da inceleyin.<\/li>\n<\/ul>\n<\/div>\n<p class=\"aiw-lead\">Linux i\u015flem y\u00f6netimi; \u00e7al\u0131\u015fan s\u00fcre\u00e7leri g\u00f6rmek, kaynak t\u00fcketimini \u00f6l\u00e7mek ve gerekti\u011finde g\u00fcvenli bi\u00e7imde durdurmakt\u0131r. ps anl\u0131k ayr\u0131nt\u0131 verir, top canl\u0131 izleme sa\u011flar, kill ise PID&#039;ye sinyal g\u00f6nderir. Do\u011fru s\u0131ra \u00f6nce i\u015flemi tan\u0131mlamak, sonra SIGTERM denemek ve yaln\u0131zca zorunluysa SIGKILL kullanmakt\u0131r.<\/p>\n<div class=\"aiw-toc\" style=\"border:1px solid #dbe3ea;border-radius:8px;padding:16px 20px;margin:0 0 28px\">\n<p class=\"aiw-toc-head\"><strong>\u0130\u00e7indekiler<\/strong><span class=\"aiw-toc-meta\"> \u00b7 11 dk okuma<\/span><\/p>\n<ol style=\"margin:10px 0 0;padding-left:22px\">\n<li><a href=\"#linux-islem-yonetimi-neden-yeniden-baslatmadan-once-gelir\">Linux i\u015flem y\u00f6netimi neden yeniden ba\u015flatmadan \u00f6nce gelir?<\/a><\/li>\n<li><a href=\"#ps-ile-calisan-islemler-nasil-listelenir\">ps ile \u00e7al\u0131\u015fan i\u015flemler nas\u0131l listelenir?<\/a><\/li>\n<li><a href=\"#top-ile-canli-kaynak-kullanimi-nasil-izlenir\">top ile canl\u0131 kaynak kullan\u0131m\u0131 nas\u0131l izlenir?<\/a><\/li>\n<li><a href=\"#cpu-ve-bellek-tuketimi-nasil-yorumlanir\">CPU ve bellek t\u00fcketimi nas\u0131l yorumlan\u0131r?<\/a><\/li>\n<li><a href=\"#bir-islemin-ebeveynini-ve-dosyalarini-nasil-bulursunuz\">Bir i\u015flemin ebeveynini ve dosyalar\u0131n\u0131 nas\u0131l bulursunuz?<\/a><\/li>\n<li><a href=\"#kill-komutu-hangi-sinyali-ne-zaman-gonderir\">kill komutu hangi sinyali ne zaman g\u00f6nderir?<\/a><\/li>\n<li><a href=\"#toplu-sonlandirma-ve-servis-guvenligi\">Toplu sonland\u0131rma ve servis g\u00fcvenli\u011fi<\/a><\/li>\n<li><a href=\"#islem-yonetimini-otomasyona-tasimak\">\u0130\u015flem y\u00f6netimini otomasyona ta\u015f\u0131mak<\/a><\/li>\n<li><a href=\"#kaynak-tuketen-islemleri-incelerken-pratik-sira\">Kaynak t\u00fcketen i\u015flemleri incelerken pratik s\u0131ra<\/a><\/li>\n<li><a href=\"#isleme-mudahale-etmeden-once-kontrol-edin\">\u0130\u015fleme M\u00fcdahale Etmeden \u00d6nce Kontrol Edin<\/a><\/li>\n<li><a href=\"#sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/a><\/li>\n<li><a href=\"#kaynaklar\">Kaynaklar<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"linux-islem-yonetimi-neden-yeniden-baslatmadan-once-gelir\">Linux i\u015flem y\u00f6netimi neden yeniden ba\u015flatmadan \u00f6nce gelir?<\/h2>\n<p>Bir VPS yava\u015flad\u0131\u011f\u0131nda, web sunucusu yan\u0131t vermedi\u011finde veya y\u00fck ortalamas\u0131 y\u00fckseldi\u011finde ilk i\u015f sistemi yeniden ba\u015flatmak de\u011fildir. \u00d6nce hangi i\u015flemlerin \u00e7al\u0131\u015ft\u0131\u011f\u0131, ne kadar CPU ve bellek kulland\u0131\u011f\u0131, hangi kullan\u0131c\u0131ya ait oldu\u011fu ve hangi ebeveynden do\u011fdu\u011fu incelenir. Linux i\u015flem y\u00f6netimi, bu g\u00f6zlemi g\u00fcvenli bir m\u00fcdahaleye d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<p><code>ps<\/code> anl\u0131k ve ayr\u0131nt\u0131l\u0131 g\u00f6r\u00fcn\u00fcm verir, <code>top<\/code> canl\u0131 izleme sa\u011flar, <code>kill<\/code> ise kontroll\u00fc sinyal g\u00f6nderir. \u00dc\u00e7 komut birlikte de\u011ferlendirildi\u011finde bir i\u015flemi bulup kaynak kullan\u0131m\u0131n\u0131 anlamak ve gerekti\u011finde nazik\u00e7e sonland\u0131rmak m\u00fcmk\u00fcn olur.<\/p>\n<p><strong>\u0130lk kural<\/strong> &#8211; \u0130\u015flemi sonland\u0131rmadan \u00f6nce PID, kullan\u0131c\u0131, tam komut sat\u0131r\u0131 ve ebeveyn s\u00fcreci do\u011frulanmal\u0131d\u0131r.<\/p>\n<h2 id=\"ps-ile-calisan-islemler-nasil-listelenir\"><code>ps<\/code> ile \u00e7al\u0131\u015fan i\u015flemler nas\u0131l listelenir?<\/h2>\n<p><code>ps<\/code>, \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 andaki i\u015flemlerin g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc verir. Se\u00e7enek kullan\u0131lmad\u0131\u011f\u0131nda \u00e7o\u011fu Linux da\u011f\u0131t\u0131m\u0131nda yaln\u0131zca mevcut terminalle ili\u015fkili i\u015flemler g\u00f6sterilir:<\/p>\n<pre><code>ps<\/code><\/pre>\n<pre><code>  PID TTY          TIME CMD\n 8421 pts\/0    00:00:00 bash\n 9134 pts\/0    00:00:00 ps<\/code><\/pre>\n<p><code>PID<\/code> i\u015flem kimli\u011fidir. <code>TTY<\/code> terminali, <code>TIME<\/code> i\u015flemin kulland\u0131\u011f\u0131 toplam CPU s\u00fcresini, <code>CMD<\/code> ise komut ad\u0131n\u0131 g\u00f6sterir. Sunucudaki t\u00fcm kullan\u0131c\u0131 i\u015flemlerini g\u00f6rmek i\u00e7in s\u0131k kullan\u0131lan iki bi\u00e7im \u015funlard\u0131r:<\/p>\n<pre><code>ps aux\nps -ef<\/code><\/pre>\n<p><code>ps aux<\/code> BSD tarz\u0131 se\u00e7enekleri kullan\u0131r ve CPU ile bellek y\u00fczdelerini \u00f6ne \u00e7\u0131kar\u0131r. <code>ps -ef<\/code> ise tam komut sat\u0131r\u0131n\u0131, ebeveyn PID&#8217;sini ve ba\u015flang\u0131\u00e7 zaman\u0131n\u0131 daha d\u00fczenli g\u00f6sterir. Se\u00e7enekleri kar\u0131\u015ft\u0131r\u0131rken dikkat edin: <code>ps aux<\/code> ile <code>ps -aux<\/code> ayn\u0131 yaz\u0131m bi\u00e7imi de\u011fildir.<\/p>\n<h3>Belirli bir i\u015flemi aramak<\/h3>\n<p>\u00c7\u0131kt\u0131 uzunsa <code>grep<\/code> ile filtreleme yap\u0131labilir; ancak <code>grep<\/code> komutunun kendisi de listede g\u00f6r\u00fcnebilir:<\/p>\n<pre><code>ps aux | grep '[n]ginx'\npgrep -a nginx\npidof nginx<\/code><\/pre>\n<p><code>pgrep -a<\/code> i\u015flem ad\u0131n\u0131 ve komut sat\u0131r\u0131n\u0131 birlikte verir. Tek bir servisin PID&#8217;sini bulmak i\u00e7in <code>pidof<\/code> daha k\u0131sa olabilir. Ayr\u0131nt\u0131l\u0131 incelemede gerekli s\u00fctunlar\u0131 a\u00e7\u0131k\u00e7a istemek daha g\u00fcvenlidir:<\/p>\n<pre><code>ps -eo pid,ppid,user,%cpu,%mem,stat,lstart,cmd --sort=-%cpu | head -n 15<\/code><\/pre>\n<p>Buradaki <code>ppid<\/code> ebeveyn i\u015flemi, <code>stat<\/code> mevcut durumu, <code>lstart<\/code> ba\u015flang\u0131\u00e7 zaman\u0131n\u0131 g\u00f6sterir. <code>--sort=-%cpu<\/code> en y\u00fcksek CPU t\u00fcketen i\u015flemleri \u00fcste ta\u015f\u0131r. Bellek t\u00fcketimine g\u00f6re s\u0131ralama i\u00e7in <code>--sort=-%mem<\/code> kullan\u0131labilir.<\/p>\n<p><strong>Uygulama<\/strong> &#8211; Sorun ara\u015ft\u0131r\u0131rken \u00f6nce <code>ps -eo pid,ppid,user,%cpu,%mem,stat,cmd --sort=-%cpu | head -n 15<\/code> ile en y\u00fcksek CPU kullanan i\u015flemleri g\u00f6r\u00fcnt\u00fcleyin.<\/p>\n<h2 id=\"top-ile-canli-kaynak-kullanimi-nasil-izlenir\"><code>top<\/code> ile canl\u0131 kaynak kullan\u0131m\u0131 nas\u0131l izlenir?<\/h2>\n<p><code>top<\/code>, i\u015flem listesini belirli aral\u0131klarla yeniler ve CPU, bellek, y\u00fck ortalamas\u0131 ile \u00e7al\u0131\u015fan s\u00fcre\u00e7leri tek ekranda g\u00f6sterir:<\/p>\n<pre><code>top<\/code><\/pre>\n<p>\u00dcst b\u00f6l\u00fcmdeki <code>load average<\/code> de\u011ferleri son 1, 5 ve 15 dakikadaki \u00e7al\u0131\u015ft\u0131r\u0131labilir veya bekleyen i\u015f y\u00fck\u00fcn\u00fc temsil eder. Bu de\u011fer CPU \u00e7ekirde\u011fi say\u0131s\u0131yla birlikte yorumlanmal\u0131d\u0131r. 8 vCPU&#8217;lu bir sistemde 2,0 y\u00fck tek ba\u015f\u0131na alarm anlam\u0131na gelmez; 1 vCPU&#8217;lu bir sistemde ayn\u0131 de\u011fer daha belirgin bask\u0131ya i\u015faret edebilir.<\/p>\n<p><code>top<\/code> i\u00e7inde baz\u0131 tu\u015flar g\u00f6r\u00fcn\u00fcm\u00fc do\u011frudan de\u011fi\u015ftirir:<\/p>\n<ul>\n<li><code>P<\/code> &#8211; CPU kullan\u0131m\u0131na g\u00f6re s\u0131rala.<\/li>\n<li><code>M<\/code> &#8211; bellek kullan\u0131m\u0131na g\u00f6re s\u0131rala.<\/li>\n<li><code>1<\/code> &#8211; i\u015flemci \u00e7ekirdeklerini ayr\u0131 ayr\u0131 g\u00f6ster.<\/li>\n<li><code>c<\/code> &#8211; k\u0131sa i\u015flem ad\u0131 ile tam komut sat\u0131r\u0131 aras\u0131nda ge\u00e7i\u015f yap.<\/li>\n<li><code>H<\/code> &#8211; i\u015f par\u00e7ac\u0131klar\u0131n\u0131 g\u00f6ster veya gizle.<\/li>\n<li><code>k<\/code> &#8211; PID girerek sinyal g\u00f6nderme ekran\u0131n\u0131 a\u00e7.<\/li>\n<li><code>q<\/code> &#8211; programdan \u00e7\u0131k.<\/li>\n<\/ul>\n<p>CPU y\u00fczdesi tek ba\u015f\u0131na yeterli de\u011fildir. Bir i\u015flem s\u00fcrekli y\u00fcksek CPU kullan\u0131yorsa darbo\u011faz hesaplama olabilir. Bellek t\u00fcketimi art\u0131yor ve <code>available<\/code> de\u011feri d\u00fc\u015f\u00fcyorsa bellek bask\u0131s\u0131 ara\u015ft\u0131r\u0131lmal\u0131d\u0131r. Swap kullan\u0131m\u0131 da ayr\u0131ca kontrol edilmelidir:<\/p>\n<pre><code>free -h\nvmstat 1 5<\/code><\/pre>\n<p><code>free -h<\/code> toplam, kullan\u0131lan ve eri\u015filebilir belle\u011fi okunabilir birimlerle verir. <code>vmstat<\/code> \u00e7\u0131kt\u0131s\u0131ndaki <code>si<\/code> ve <code>so<\/code> de\u011ferleri d\u00fczenli olarak y\u00fckseliyorsa swap giri\u015f-\u00e7\u0131k\u0131\u015f\u0131 vard\u0131r. Yava\u015fl\u0131\u011f\u0131n nedeni yaln\u0131zca tek bir i\u015flemin CPU t\u00fcketimi olmayabilir.<\/p>\n<h2 id=\"cpu-ve-bellek-tuketimi-nasil-yorumlanir\">CPU ve bellek t\u00fcketimi nas\u0131l yorumlan\u0131r?<\/h2>\n<p>Linux&#8217;ta bir i\u015flem i\u00e7in g\u00f6r\u00fclen CPU y\u00fczdesi, izleme arac\u0131n\u0131n g\u00f6sterim bi\u00e7imine ba\u011fl\u0131d\u0131r. \u00c7ok \u00e7ekirdekli sistemlerde bir i\u015flemin y\u00fczde 100 CPU kullanmas\u0131 genellikle tek bir mant\u0131ksal i\u015flemciyi tamamen kulland\u0131\u011f\u0131 anlam\u0131na gelir. Baz\u0131 ara\u00e7lar toplam makine kapasitesini y\u00fczde 100 kabul eder, baz\u0131lar\u0131 \u00e7ekirdek ba\u015f\u0131na de\u011fer g\u00f6sterir.<\/p>\n<p>Bellek taraf\u0131nda <code>RES<\/code>, i\u015flemin RAM&#8217;de tuttu\u011fu yerle\u015fik k\u0131sm\u0131; <code>VIRT<\/code>, sanal adres alan\u0131n\u0131; <code>SHR<\/code> ise payla\u015f\u0131labilir k\u0131sm\u0131 ifade eder. <code>VIRT<\/code> de\u011ferinin y\u00fcksek olmas\u0131 tek ba\u015f\u0131na fiziksel RAM t\u00fcketiminin y\u00fcksek oldu\u011funu kan\u0131tlamaz. Daha do\u011fru de\u011ferlendirme i\u00e7in <code>RES<\/code>, sistemin <code>available<\/code> belle\u011fi ve s\u00fcre\u00e7 say\u0131s\u0131 birlikte incelenmelidir.<\/p>\n<p>\u0130\u015flemin durumu da ipucu verir. <code>R<\/code> \u00e7al\u0131\u015fan veya \u00e7al\u0131\u015fmaya haz\u0131r, <code>S<\/code> kesilebilir uyku, <code>D<\/code> kesilemeyen bekleme, <code>Z<\/code> ise sonlanm\u0131\u015f fakat ebeveyni taraf\u0131ndan toplanmam\u0131\u015f zombi i\u015flemi g\u00f6sterir. <code>D<\/code> durumunda i\u015flemi tekrar tekrar \u00f6ld\u00fcrmeye \u00e7al\u0131\u015fmak \u00e7o\u011fu zaman \u00e7\u00f6z\u00fcm de\u011fildir; disk veya a\u011f depolama gecikmesi incelenmelidir.<\/p>\n<pre><code>ps -eo pid,stat,wchan:32,cmd | awk '$2 ~ \/^D\/ || $2 ~ \/^Z\/ {print}'<\/code><\/pre>\n<p>Bu komut, beklenmeyen <code>D<\/code> veya <code>Z<\/code> durumlar\u0131n\u0131 ay\u0131klamaya yard\u0131mc\u0131 olur. Zombi i\u015flemler i\u00e7in as\u0131l incelenmesi gereken \u00e7o\u011fu zaman zombi de\u011fil, onu temizlemeyen ebeveyn s\u00fcre\u00e7tir.<\/p>\n<p><strong>Kontrol edin<\/strong> &#8211; CPU alarm\u0131nda i\u015flem durumunu, bellek alarm\u0131nda <code>RES<\/code> ve <code>available<\/code> de\u011ferlerini birlikte de\u011ferlendirin.<\/p>\n<div class=\"aiw-callout aiw-callout-field\">\n<p class=\"aiw-callout-label\">Sahadan not<\/p>\n<p>Bayram sabah\u0131 bir VPS&#039;te sertifikan\u0131n yenilenmedi\u011fi alarm\u0131n\u0131 ald\u0131m. \u00d6nce web sunucusunu yeniden ba\u015flatmak yerine systemctl list-timers ve journalctl -u certbot.timer \u00e7\u0131kt\u0131s\u0131na bakt\u0131m; durmu\u015f timer ve son ba\u015far\u0131s\u0131z s\u00fcre\u00e7 kayd\u0131 ortaya \u00e7\u0131kt\u0131. Timer&#039;\u0131 d\u00fczelttikten sonra certbot renew &#8211;dry-run ile yenilemeyi do\u011frulad\u0131m.<\/p>\n<\/div>\n<h2 id=\"bir-islemin-ebeveynini-ve-dosyalarini-nasil-bulursunuz\">Bir i\u015flemin ebeveynini ve dosyalar\u0131n\u0131 nas\u0131l bulursunuz?<\/h2>\n<p>Her Linux i\u015fleminin bir PID&#8217;si ve \u00e7o\u011funlukla bir ebeveyn PID&#8217;si bulunur. S\u00fcre\u00e7 a\u011fac\u0131n\u0131 g\u00f6rmek, bir servisin neden birden fazla worker olu\u015fturdu\u011funu veya kapanan bir i\u015flemin neden yeniden ba\u015flad\u0131\u011f\u0131n\u0131 anlamay\u0131 kolayla\u015ft\u0131r\u0131r:<\/p>\n<pre><code>pstree -aps 9134\nps -o pid,ppid,user,lstart,cmd -p 9134<\/code><\/pre>\n<p><code>pstree -aps<\/code> verilen PID&#8217;ye giden ebeveyn zincirini g\u00f6sterir. <code>ps -o<\/code> yaln\u0131zca se\u00e7ilen s\u00fctunlar\u0131 yazd\u0131r\u0131r; uzun ve karma\u015f\u0131k \u00e7\u0131kt\u0131lar yerine gerekli bilgiler al\u0131n\u0131r.<\/p>\n<p>Bir i\u015flemin a\u00e7\u0131k dosyalar\u0131n\u0131 ve a\u011f soketlerini incelemek i\u00e7in:<\/p>\n<pre><code>lsof -p 9134\nls -l \/proc\/9134\/fd\ntr '\\0' ' ' &lt; \/proc\/9134\/cmdline; echo<\/code><\/pre>\n<p>Linux kernel belgelerinde <code>\/proc<\/code>, s\u00fcre\u00e7 bilgilerini sanal dosya sistemi \u00fczerinden sunan bir aray\u00fcz olarak a\u00e7\u0131klan\u0131r. <code>\/proc\/PID\/fd<\/code> alt\u0131ndaki sembolik ba\u011flant\u0131lar a\u00e7\u0131k dosyalar\u0131, soketleri veya pipe nesnelerini g\u00f6sterir. Yetki yoksa ba\u015fka kullan\u0131c\u0131lar\u0131n s\u00fcre\u00e7 ayr\u0131nt\u0131lar\u0131 k\u0131s\u0131tl\u0131 g\u00f6r\u00fcnebilir; her incelemeyi root ile yapmak gerekmez.<\/p>\n<p>Bir web uygulamas\u0131n\u0131n hangi portu tuttu\u011fu ara\u015ft\u0131r\u0131l\u0131yorsa <code>ss<\/code> daha uygun olabilir:<\/p>\n<pre><code>ss -ltnp\nss -ltnp | grep ':8080'<\/code><\/pre>\n<p>Komut sat\u0131r\u0131nda portu g\u00f6rmek, uygulama ile reverse proxy aras\u0131ndaki yanl\u0131\u015f y\u00f6nlendirmeleri ay\u0131rmaya yard\u0131m eder. \u00d6rne\u011fin Nginx&#8217;in 80 ve 443 numaral\u0131 portlarda dinlerken uygulaman\u0131n <code>127.0.0.1:8080<\/code> \u00fczerinde bulunmas\u0131 beklenen bir mimari olabilir.<\/p>\n<h2 id=\"kill-komutu-hangi-sinyali-ne-zaman-gonderir\"><code>kill<\/code> komutu hangi sinyali ne zaman g\u00f6nderir?<\/h2>\n<p><code>kill<\/code> ad\u0131ndaki komut yaln\u0131zca zorla kapatma yapmaz; bir PID&#8217;ye sinyal g\u00f6nderir. Varsay\u0131lan sinyal <code>SIGTERM<\/code>, yani 15 numaral\u0131 sinyaldir. Uygulama bu sinyali yakalayarak ba\u011flant\u0131lar\u0131 kapatabilir, ge\u00e7ici dosyalar\u0131 silebilir veya kuyru\u011fu g\u00fcvenli bi\u00e7imde durdurabilir.<\/p>\n<pre><code>kill 9134\nkill -TERM 9134\nkill -15 9134<\/code><\/pre>\n<p>Bu \u00fc\u00e7 kullan\u0131m ayn\u0131 temel sinyali ifade eder. S\u00fcrecin kapan\u0131p kapanmad\u0131\u011f\u0131n\u0131 yeni bir <code>ps<\/code> veya <code>pgrep<\/code> \u00e7a\u011fr\u0131s\u0131yla do\u011frulay\u0131n:<\/p>\n<pre><code>kill -0 9134 &amp;&amp; echo 'PID mevcut veya eri\u015filebilir' || echo 'PID bulunamad\u0131 ya da izin yok'<\/code><\/pre>\n<p><code>kill -0<\/code> ger\u00e7ek bir sonland\u0131rma yapmaz; PID&#8217;nin varl\u0131\u011f\u0131n\u0131 ve sinyal g\u00f6nderme yetkisini s\u0131namak i\u00e7in kullan\u0131l\u0131r. \u0130\u015flem <code>SIGTERM<\/code>&#8216;e yan\u0131t vermiyorsa nedenini loglarda aray\u0131n. Son \u00e7are olarak <code>SIGKILL<\/code> g\u00f6nderilebilir:<\/p>\n<pre><code>kill -KILL 9134\nkill -9 9134<\/code><\/pre>\n<p><code>SIGKILL<\/code> i\u015flem taraf\u0131ndan yakalanamaz veya ertelenemez. Bu nedenle temizlik kodu \u00e7al\u0131\u015fmaz; a\u00e7\u0131k ba\u011flant\u0131lar, ge\u00e7ici dosyalar ve uygulama i\u00e7i durum beklenmedik bi\u00e7imde kalabilir. Veritaban\u0131, dosya yazma veya kuyruk i\u015fleyen s\u00fcre\u00e7lerde bu sinyal dikkatle kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>Sinyal adlar\u0131n\u0131n listesini g\u00f6rmek i\u00e7in:<\/p>\n<pre><code>kill -l<\/code><\/pre>\n<p>Bir servis y\u00f6neticisi taraf\u0131ndan ba\u015flat\u0131lm\u0131\u015f s\u00fcreci do\u011frudan <code>kill -9<\/code> ile sonland\u0131rmak yerine servis aray\u00fcz\u00fcn\u00fc kullanmak daha do\u011fru olur:<\/p>\n<pre><code>sudo systemctl status nginx\nsudo systemctl stop nginx\nsudo systemctl restart nginx<\/code><\/pre>\n<p>Systemd servisi yeniden ba\u015flatacak \u015fekilde yap\u0131land\u0131r\u0131lm\u0131\u015fsa do\u011frudan \u00f6ld\u00fcr\u00fclen s\u00fcre\u00e7 birka\u00e7 saniye i\u00e7inde tekrar ortaya \u00e7\u0131kabilir. Bu yeni bir ar\u0131za olmayabilir; servis politikas\u0131n\u0131n beklenen davran\u0131\u015f\u0131d\u0131r.<\/p>\n<p><strong>S\u0131ra \u00f6nemli<\/strong> &#8211; \u00d6nce <code>SIGTERM<\/code> g\u00f6nderin, kapan\u0131\u015f\u0131 do\u011frulay\u0131n; <code>SIGKILL<\/code>&#8216;i yaln\u0131zca i\u015flem ger\u00e7ekten yan\u0131t vermiyorsa kullan\u0131n.<\/p>\n<div class=\"aiw-callout aiw-callout-tip\">\n<p class=\"aiw-callout-label\">\u0130pucu<\/p>\n<p>Bir PID&#039;yi kapatmadan \u00f6nce ps -o pid,ppid,user,stat,lstart,cmd -p PID komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Ayn\u0131 ada sahip iki worker varsa yaln\u0131zca i\u015flem ad\u0131na bakmak yanl\u0131\u015f s\u00fcreci se\u00e7menize neden olabilir.<\/p>\n<\/div>\n<h2 id=\"toplu-sonlandirma-ve-servis-guvenligi\">Toplu sonland\u0131rma ve servis g\u00fcvenli\u011fi<\/h2>\n<p>Birden fazla s\u00fcreci ada g\u00f6re kapatmak i\u00e7in <code>pkill<\/code> veya <code>killall<\/code> kullan\u0131labilir:<\/p>\n<pre><code>pgrep -a worker\npkill -TERM -u appuser -f '\/opt\/app\/worker.py'<\/code><\/pre>\n<p><code>-u<\/code> kullan\u0131c\u0131yla, <code>-f<\/code> ise yaln\u0131zca k\u0131sa i\u015flem ad\u0131yla de\u011fil tam komut sat\u0131r\u0131yla e\u015fle\u015ftirme yapar. Tam komut sat\u0131r\u0131 e\u015fle\u015ftirmesi g\u00fc\u00e7l\u00fcd\u00fcr; ayn\u0131 metni ta\u015f\u0131yan beklenmedik bir s\u00fcreci de se\u00e7ebilir. Bu y\u00fczden \u00f6nce <code>pgrep -a<\/code> ile sonucu g\u00f6rmeden \u00e7al\u0131\u015ft\u0131r\u0131lmamal\u0131d\u0131r.<\/p>\n<p>\u0130\u015flem y\u00f6netimi s\u0131ras\u0131nda terminal oturumunun kopmas\u0131 da hesaba kat\u0131lmal\u0131d\u0131r. Uzun s\u00fcren inceleme veya bak\u0131m komutlar\u0131nda <code>tmux<\/code> kullanmak, SSH ba\u011flant\u0131s\u0131 kesildi\u011finde izleme oturumunu korur. Bir i\u015flemi arka plana almak ile onu ba\u011f\u0131ms\u0131z bir servis haline getirmek ayn\u0131 \u015fey de\u011fildir; \u00fcretim g\u00f6revleri i\u00e7in systemd, supervisor veya uygulaman\u0131n kendi servis mekanizmas\u0131 daha izlenebilirdir.<\/p>\n<p>Kayna\u011f\u0131 belirlenemeyen bir s\u00fcre\u00e7 i\u00e7in hemen kapatma yerine \u015fu s\u0131ra izlenebilir: komut sat\u0131r\u0131n\u0131 g\u00f6r\u00fcnt\u00fcleyin, kullan\u0131c\u0131y\u0131 kontrol edin, ebeveyn s\u00fcreci bulun, a\u00e7\u0131k dosyalar\u0131 ve soketleri inceleyin, ilgili loglar\u0131 okuyun. \u00d6zellikle WordPress kullanan VPS&#8217;lerde PHP-FPM worker say\u0131s\u0131, web istekleri ve veritaban\u0131 beklemeleri birlikte incelenmelidir. Yaln\u0131zca en y\u00fcksek CPU kullanan worker&#8217;\u0131 \u00f6ld\u00fcrmek temel nedeni ortadan kald\u0131rmaz.<\/p>\n<div class=\"aiw-callout aiw-callout-warn\">\n<p class=\"aiw-callout-label\">Dikkat<\/p>\n<p>kill -9 h\u0131zl\u0131 g\u00f6r\u00fcn\u00fcr ama uygulaman\u0131n kapan\u0131\u015f kodunu \u00e7al\u0131\u015ft\u0131rmas\u0131na izin vermez. Veritaban\u0131 veya dosya yazan bir s\u00fcre\u00e7te \u00f6nce SIGTERM g\u00f6nderin, k\u0131sa bir s\u00fcre bekleyin ve s\u00fcrecin ger\u00e7ekten kapan\u0131p kapanmad\u0131\u011f\u0131n\u0131 yeniden kontrol edin.<\/p>\n<\/div>\n<h2 id=\"islem-yonetimini-otomasyona-tasimak\">\u0130\u015flem y\u00f6netimini otomasyona ta\u015f\u0131mak<\/h2>\n<p>Ayn\u0131 kontrol ad\u0131mlar\u0131 \u00fc\u00e7\u00fcnc\u00fc kez tekrarlan\u0131yorsa k\u00fc\u00e7\u00fck bir <a href=\"https:\/\/www.vps.tc\/blog\/tr\/bash-script-nedir-linux-otomasyonu-rehberi\/\">Bash Script<\/a> yazmak mant\u0131kl\u0131 hale gelir. Script \u00f6nce g\u00f6zlem yapmal\u0131; otomatik sonland\u0131rma gibi geri d\u00f6n\u00fc\u015f\u00fc zor bir ad\u0131m\u0131 varsay\u0131lan davran\u0131\u015f haline getirmemelidir.<\/p>\n<pre><code>#!\/usr\/bin\/env bash\nset -u\n\npattern=\"\/opt\/app\/worker.py\"\n\nif ! pgrep -af -- \"$pattern\"; then\n  echo \"\u0130\u015flem bulunamad\u0131: $pattern\" &gt;&amp;2\n  exit 1\nfi\n\necho \"\u00d6nce PID ve komut sat\u0131r\u0131n\u0131 do\u011frulay\u0131n. Otomatik kill uygulanmad\u0131.\"<\/code><\/pre>\n<p><code>set -u<\/code> tan\u0131ms\u0131z de\u011fi\u015fkenleri hata olarak ele al\u0131r. Bu \u00f6rnek bilerek i\u015flem sonland\u0131rmaz; \u00fcretim otomasyonunda yanl\u0131\u015f e\u015fle\u015fmenin etkisini s\u0131n\u0131rlamak, tek sat\u0131rl\u0131k agresif komutlardan daha de\u011ferlidir.<\/p>\n<p>Ansible ile birden fazla VPS&#8217;te g\u00f6zlem komutlar\u0131n\u0131 standartla\u015ft\u0131rabilirsiniz. Tek sunucuda bir kez \u00e7al\u0131\u015facak bir komut i\u00e7in YAML dosyas\u0131 a\u00e7mak ise gereksiz bir katman olu\u015fturabilir. \u0130\u015flem say\u0131s\u0131, CPU, bellek ve servis durumu monitoring sistemine aktar\u0131l\u0131yorsa alarm\u0131n yan\u0131nda PID, komut ad\u0131 ve son yeniden ba\u015flatma zaman\u0131 da tutulmal\u0131d\u0131r.<\/p>\n<p><strong>G\u00fcvenli ba\u015flang\u0131\u00e7<\/strong> &#8211; Otomasyona \u00f6nce g\u00f6zlem ve raporlama ad\u0131mlar\u0131n\u0131 ekleyin; otomatik sonland\u0131rmay\u0131 a\u00e7\u0131k onay veya net bir e\u015fik arkas\u0131nda tutun.<\/p>\n<div class=\"aiw-callout aiw-callout-example\">\n<p class=\"aiw-callout-label\">\u00d6rnek<\/p>\n<p>Bir PHP-FPM worker&#039;\u0131 y\u00fcksek CPU kullan\u0131yorsa do\u011frudan \u00f6ld\u00fcrmek yaln\u0131zca ge\u00e7ici rahatlama sa\u011flayabilir. Ayn\u0131 anda web eri\u015fim loglar\u0131n\u0131, PHP-FPM slow log&#039;unu ve veritaban\u0131 sorgu beklemelerini kontrol ederek iste\u011fin neden tak\u0131ld\u0131\u011f\u0131n\u0131 aray\u0131n.<\/p>\n<\/div>\n<h2 id=\"kaynak-tuketen-islemleri-incelerken-pratik-sira\">Kaynak t\u00fcketen i\u015flemleri incelerken pratik s\u0131ra<\/h2>\n<p>Bir VPS&#8217;in yava\u015flad\u0131\u011f\u0131 senaryoda a\u015fa\u011f\u0131daki s\u0131ra gereksiz yeniden ba\u015flatmalar\u0131 azalt\u0131r:<\/p>\n<ol>\n<li><code>uptime<\/code> ile y\u00fck ortalamas\u0131n\u0131 ve \u00e7al\u0131\u015fma s\u00fcresini g\u00f6r\u00fcn.<\/li>\n<li><code>free -h<\/code> ile eri\u015filebilir RAM ve swap durumunu kontrol edin.<\/li>\n<li><code>top<\/code> veya <code>ps<\/code> ile CPU ve bellek t\u00fcketen ilk i\u015flemleri bulun.<\/li>\n<li><code>ps -o pid,ppid,user,stat,cmd -p PID<\/code> ile i\u015flemi do\u011frulay\u0131n.<\/li>\n<li><code>journalctl -u servis-ad\u0131<\/code> ve uygulama loglar\u0131n\u0131 okuyun.<\/li>\n<li>\u0130\u015flem bir systemd servisi ise <code>systemctl status<\/code> ve servis politikas\u0131n\u0131 inceleyin.<\/li>\n<li>Gerekliyse \u00f6nce <code>systemctl stop<\/code> veya <code>SIGTERM<\/code> kullan\u0131n.<\/li>\n<li>Son durumu yeniden \u00f6l\u00e7\u00fcn; ayn\u0131 alarm tekrarlan\u0131yorsa k\u00f6k nedeni ara\u015ft\u0131r\u0131n.<\/li>\n<\/ol>\n<p>Disk dolulu\u011fu da i\u015flem davran\u0131\u015f\u0131n\u0131 bozabilir. <code>\/var<\/code> doldu\u011funda log yazamayan uygulamalar kilitlenebilir veya yeni worker ba\u015flatamayabilir. Bu durumda <code>ncdu<\/code>, <code>df -h<\/code> ve logrotate yap\u0131land\u0131rmas\u0131 birlikte kontrol edilmelidir. \u0130\u015flemi \u00f6ld\u00fcrmek dolu diski bo\u015faltmaz.<\/p>\n<p>VPS katman\u0131nda CPU \u00e7al\u0131nma zaman\u0131 da g\u00f6zden ka\u00e7abilir. <code>top<\/code> i\u00e7indeki <code>st<\/code> de\u011feri sanal makinenin fiziksel i\u015flemciyi hypervisor ile payla\u015f\u0131rken bekledi\u011fi zaman\u0131 g\u00f6sterir. S\u00fcre\u00e7ler normal g\u00f6r\u00fcnd\u00fc\u011f\u00fc halde uygulama yava\u015fsa VPS sa\u011flay\u0131c\u0131s\u0131n\u0131n host yo\u011funlu\u011fu veya sanal CPU kotas\u0131 ayr\u0131ca incelenmelidir.<\/p>\n<table>\n<thead>\n<tr>\n<th>Ara\u00e7<\/th>\n<th>En uygun kullan\u0131m<\/th>\n<th>Dikkat edilmesi gereken<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>ps<\/code><\/td>\n<td>Anl\u0131k ayr\u0131nt\u0131l\u0131 liste ve \u00f6zel s\u00fctunlar<\/td>\n<td>Canl\u0131 yenileme yapmaz<\/td>\n<\/tr>\n<tr>\n<td><code>top<\/code><\/td>\n<td>CPU, RAM ve y\u00fck\u00fc canl\u0131 izleme<\/td>\n<td>G\u00f6r\u00fcnen de\u011ferler ba\u011flamla yorumlanmal\u0131<\/td>\n<\/tr>\n<tr>\n<td><code>kill<\/code><\/td>\n<td>Belirli PID&#8217;ye kontroll\u00fc sinyal g\u00f6nderme<\/td>\n<td><code>SIGKILL<\/code> temizlik yapmadan sonland\u0131r\u0131r<\/td>\n<\/tr>\n<tr>\n<td><code>pgrep<\/code><\/td>\n<td>PID ve komut sat\u0131r\u0131 arama<\/td>\n<td>E\u015fle\u015fme desenini dar tutun<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>G\u00fcvenli Linux i\u015flem y\u00f6netimi, en y\u00fcksek say\u0131y\u0131 bulup kapatmaktan ibaret de\u011fildir. \u00d6l\u00e7\u00fcm, kimlik do\u011frulama, sinyal se\u00e7imi ve kapan\u0131\u015f sonras\u0131 kontrol ayn\u0131 zincirin par\u00e7alar\u0131d\u0131r. Bir sonraki alarmda terminale <code>reboot<\/code> yazmadan \u00f6nce bu zincirin ilk halkas\u0131n\u0131 kontrol edin.<\/p>\n<h2 id=\"isleme-mudahale-etmeden-once-kontrol-edin\">\u0130\u015fleme M\u00fcdahale Etmeden \u00d6nce Kontrol Edin<\/h2>\n<ul class=\"aiw-checklist\">\n<li>Y\u00fck ortalamas\u0131n\u0131 ve sistemin \u00e7al\u0131\u015fma s\u00fcresini g\u00f6r\u00fcnt\u00fcleyin.<\/li>\n<li>Eri\u015filebilir belle\u011fi ve swap kullan\u0131m\u0131n\u0131 kontrol edin.<\/li>\n<li>PID, kullan\u0131c\u0131, tam komut sat\u0131r\u0131 ve ebeveyn PID&#039;sini do\u011frulay\u0131n.<\/li>\n<li>\u0130\u015flemin a\u00e7\u0131k dosyalar\u0131n\u0131 ve dinledi\u011fi soketleri inceleyin.<\/li>\n<li>\u0130lgili servis ve uygulama loglar\u0131n\u0131 okuyun.<\/li>\n<li>\u00d6nce SIGTERM veya servis y\u00f6neticisiyle kontroll\u00fc durdurma uygulay\u0131n.<\/li>\n<li>Kapan\u0131\u015ftan sonra servis durumunu ve alarm\u0131n tekrarlan\u0131p tekrarlanmad\u0131\u011f\u0131n\u0131 \u00f6l\u00e7\u00fcn.<\/li>\n<\/ul>\n<div class=\"aiw-cta\">\n<p>Bir sonraki kaynak alarm\u0131nda do\u011frudan reboot yerine \u00f6nce ps, top ve servis loglar\u0131n\u0131 birlikte inceleyin. Bu komutlar\u0131 VPS bak\u0131m kontrol listenize eklemek, \u00f6l\u00e7\u00fcm ad\u0131mlar\u0131n\u0131 her m\u00fcdahalede ayn\u0131 s\u0131rayla uygulaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<p class=\"aiw-cta-action\"><a href=\"https:\/\/www.vps.tc\/tr\/vps\">VPS paketlerini inceleyin<\/a><\/p>\n<\/div>\n<h2 id=\"sik-sorulan-sorular\">S\u0131k Sorulan Sorular<\/h2>\n<div class=\"aiw-faq\">\n<details class=\"aiw-faq-item\" open>\n<summary>Linux&#039;ta \u00e7al\u0131\u015fan i\u015flemler nas\u0131l listelenir?<\/summary>\n<p>T\u00fcm kullan\u0131c\u0131lar\u0131n i\u015flemlerini g\u00f6rmek i\u00e7in ps aux veya ps -ef komutlar\u0131n\u0131 kullanabilirsiniz. CPU ve bellek kullan\u0131m\u0131na g\u00f6re s\u0131ralanm\u0131\u015f \u00f6zel bir g\u00f6r\u00fcn\u00fcm i\u00e7in ps -eo pid,ppid,user,%cpu,%mem,stat,cmd &#8211;sort=-%cpu komutu uygundur. Canl\u0131 yenilenen bir ekran gerekiyorsa top komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>Linux&#039;ta bir i\u015flemin PID&#039;si nas\u0131l bulunur?<\/summary>\n<p>\u0130\u015flem ad\u0131na g\u00f6re PID bulmak i\u00e7in pgrep -a servis-adi veya pidof servis-adi kullan\u0131labilir. \u00d6nce e\u015fle\u015fen komut sat\u0131rlar\u0131n\u0131 pgrep -a ile do\u011frulay\u0131n. ps aux \u00e7\u0131kt\u0131s\u0131n\u0131 grep ile filtrelemek de m\u00fcmk\u00fcnd\u00fcr; ancak grep komutunun kendisini e\u015fle\u015ftirmemek i\u00e7in pgrep daha temiz bir se\u00e7enektir.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>kill ile kill -9 aras\u0131ndaki fark nedir?<\/summary>\n<p>kill PID varsay\u0131lan olarak SIGTERM, yani 15 numaral\u0131 sinyali g\u00f6nderir ve uygulamaya kontroll\u00fc kapanma f\u0131rsat\u0131 verir. kill -9 PID ise SIGKILL g\u00f6nderir; s\u00fcre\u00e7 bu sinyali yakalayamaz veya erteleyemez. SIGKILL temizlik kodunu \u00e7al\u0131\u015ft\u0131rmad\u0131\u011f\u0131 i\u00e7in yaln\u0131zca SIGTERM sonu\u00e7 vermedi\u011finde kullan\u0131lmal\u0131d\u0131r.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>top komutunda load average ne anlama gelir?<\/summary>\n<p>load average, son 1, 5 ve 15 dakikadaki \u00e7al\u0131\u015ft\u0131r\u0131labilir veya bekleyen i\u015f y\u00fck\u00fcn\u00fc g\u00f6sterir. De\u011fer CPU \u00e7ekirde\u011fi say\u0131s\u0131yla birlikte yorumlanmal\u0131d\u0131r. Disk beklemeleri ve sanalla\u015ft\u0131rma kaynakl\u0131 CPU steal time da y\u00fck\u00fc etkileyebilir; y\u00fcksek load de\u011feri her zaman tek bir i\u015flemin CPU&#039;yu t\u00fcketti\u011fi anlam\u0131na gelmez.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>Linux&#039;ta i\u015flemi sonland\u0131rmadan \u00f6nce ne kontrol edilmeli?<\/summary>\n<p>PID&#039;nin do\u011fru oldu\u011funu, tam komut sat\u0131r\u0131n\u0131, kullan\u0131c\u0131y\u0131, ebeveyn PID&#039;sini ve i\u015flemin bir systemd servisine ait olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. A\u00e7\u0131k dosyalar\u0131, a\u011f ba\u011flant\u0131lar\u0131n\u0131 ve ilgili loglar\u0131 da inceleyin. \u0130\u015flem bir servis taraf\u0131ndan y\u00f6netiliyorsa do\u011frudan kill yerine systemctl stop veya restart kullanmak daha izlenebilirdir.<\/p>\n<\/details>\n<details class=\"aiw-faq-item\">\n<summary>Zombi i\u015flem nas\u0131l temizlenir?<\/summary>\n<p>Zombi i\u015flem zaten sonlanm\u0131\u015ft\u0131r; sorun, ebeveyn s\u00fcrecin \u00e7ocu\u011fun \u00e7\u0131k\u0131\u015f durumunu toplamamas\u0131d\u0131r. ps veya pstree ile zombi PID&#039;sinin PPID de\u011ferini bulun ve ebeveyn uygulaman\u0131n davran\u0131\u015f\u0131n\u0131 inceleyin. Ebeveyni d\u00fczeltmeden zombiyi kill -9 ile sonland\u0131rmak i\u015fe yaramaz. Gerekirse uygulama servisini kontroll\u00fc bi\u00e7imde yeniden ba\u015flat\u0131n.<\/p>\n<\/details>\n<\/div>\n<h2 id=\"kaynaklar\">Kaynaklar<\/h2>\n<ul class=\"aiw-sources\">\n<li><a href=\"https:\/\/docs.kernel.org\/filesystems\/proc.html\" target=\"_blank\" rel=\"noopener\">Linux kernel &#8211; The \/proc Filesystem<\/a> \u2014 docs.kernel.org<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Linux&#8217;ta \u00e7al\u0131\u015fan i\u015flemleri ps ile listeleyin, top ile canl\u0131 izleyin ve kill ile do\u011fru sinyali kullanarak g\u00fcvenli bi\u00e7imde y\u00f6netin.<\/p>\n","protected":false},"author":2,"featured_media":832,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[383],"tags":[],"class_list":["post-834","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"lang":"tr","translations":{"tr":834,"en":835},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=834"}],"version-history":[{"count":1,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/834\/revisions"}],"predecessor-version":[{"id":836,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/834\/revisions\/836"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/832"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}