{"id":19102,"date":"2024-06-10T07:10:14","date_gmt":"2024-06-10T07:10:14","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=19102"},"modified":"2024-06-10T07:10:14","modified_gmt":"2024-06-10T07:10:14","slug":"zombie-processes-and-their-prevention","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/","title":{"rendered":"Zombie Processes and their Prevention"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png\" alt=\"\" \/><\/p>\n<p>In the complex ecosystem of operating systems, processes are the fundamental units of execution. Among the various states a process can occupy, the term &quot;zombie process&quot; stands out due to its peculiar behavior and potential implications on system performance. This article delves into what zombie processes are, how they are created, the issues they can cause, and most importantly, how they can be prevented.<\/p>\n<h2>What is a Zombie Process?<\/h2>\n<p>A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table. This state occurs when the process has terminated, but its parent process has not yet read its exit status. In Unix-like operating systems, when a process terminates, it returns an exit status to its parent process. Until this status is read, the process remains in the zombie state.<\/p>\n<h3>Lifecycle of a Process<\/h3>\n<p>To understand zombie processes, it&#8217;s crucial to grasp the lifecycle of a typical process:<\/p>\n<ul>\n<li><strong>Creation:<\/strong> A new process is created using system calls such as fork() in Unix-like systems.<\/li>\n<li><strong>Execution:<\/strong> The process executes its assigned task.<\/li>\n<li><strong>Termination:<\/strong> The process completes its execution and enters the terminated state. It sends an exit status to the parent process.<\/li>\n<li><strong>Waiting for Reaping:<\/strong> The process becomes a zombie if the parent has not yet acknowledged its termination.<\/li>\n<\/ul>\n<h3>How Zombie Processes are Created<\/h3>\n<p>Zombie processes are a natural part of process management and can occur in the following way:<\/p>\n<ul>\n<li>A child process is created by a parent process using fork().<\/li>\n<li>The child process executes and then calls exit() to terminate.<\/li>\n<li>The kernel keeps the exit status of the child process so that the parent process can retrieve it using wait() or waitpid().<\/li>\n<li>If the parent process does not call wait() or waitpid(), the child process remains in the zombie state.<\/li>\n<li>This mechanism allows the parent process to determine the exit status of its children, which can provide useful debugging information.<\/li>\n<\/ul>\n<h3>Issues Caused by Zombie Processes<\/h3>\n<p>While a few zombie processes do not typically cause problems, an accumulation of zombie processes can lead to several issues:<\/p>\n<ul>\n<li><strong>Resource Consumption:<\/strong> Each zombie process retains an entry in the process table, which is a limited resource. An excessive number of zombie processes can exhaust the process table, preventing new processes from being created.<\/li>\n<li><strong>System Performance:<\/strong> Large numbers of zombie processes can degrade system performance, as the process table grows and management overhead increases.<\/li>\n<li><strong>Security Risks:<\/strong> In some cases, zombie processes can pose security risks by exposing vulnerabilities through outdated or improperly handled system states.<\/li>\n<\/ul>\n<h3>Best Practices for Managing Processes<\/h3>\n<p>To effectively manage processes and avoid zombies, follow these best practices:<\/p>\n<ul>\n<li><strong>Robust Process Management:<\/strong> Implement robust process management in your code by handling child process terminations appropriately.<\/li>\n<li><strong>Regular Monitoring:<\/strong> Regularly monitor the system for zombie processes using tools like ps, top, or automated scripts.<\/li>\n<li><strong>Clean Code:<\/strong> Ensure your codebase includes proper error handling and process cleanup routines.<\/li>\n<li><strong>Use Supervisors:<\/strong> In complex systems, use process supervisors like systemd or supervisord to manage processes and handle terminations gracefully.<\/li>\n<\/ul>\n<p><strong>Conclusion<\/strong><br \/>\nZombie processes are an inherent aspect of process management in Unix-like operating systems. While they are not harmful in small numbers, they can pose significant problems when accumulated. Understanding the lifecycle of processes, how zombie processes are created, and implementing strategies to prevent them are crucial for maintaining a healthy and performant system. By adopting best practices for process management and employing appropriate prevention techniques, system administrators and developers can ensure their systems run smoothly without being haunted by zombies.<\/p>\n<h2>FAQs related to Zombie Processes and their Prevention<\/h2>\n<p>Below are some of the FAQs related to Zombie Processes and their Prevention:<\/p>\n<p><strong>1. How is a zombie process created?<\/strong><br \/>\nA zombie process is created when a child process terminates and the parent process does not call wait() or waitpid() to read the child&#8217;s exit status. This leaves the child in a zombie state until its exit status is read.<\/p>\n<p><strong>2. Why are zombie processes problematic?<\/strong><br \/>\nZombie processes can cause issues by consuming entries in the process table, which is a limited resource. An excessive number of zombie processes can prevent the creation of new processes and degrade system performance.<\/p>\n<p><strong>3. How can I identify zombie processes on my system?<\/strong><br \/>\nZombie processes can be identified using system monitoring tools like ps and top. In the ps command output, zombies are typically marked with a &quot;Z&quot; in the process state column.<\/p>\n<p><strong>4. What is the difference between a zombie process and an orphan process?<\/strong><br \/>\nA zombie process has terminated but its exit status has not been read by its parent process. An orphan process is a child process whose parent has terminated; the orphan is adopted by the init process (PID 1), which reaps it to prevent it from becoming a zombie.<\/p>\n<p><strong>5. Can zombie processes be a security risk?<\/strong><br \/>\nIn some cases, zombie processes can pose security risks by exposing vulnerabilities through outdated or improperly handled system states. Proper process management and timely reaping of child processes can mitigate these risks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the complex ecosystem of operating systems, processes are the fundamental units of execution. Among the various states a process can occupy, the term &quot;zombie process&quot; stands out due to its peculiar behavior and potential implications on system performance. This article delves into what zombie processes are, how they are created, the issues they can [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-19102","post","type-post","status-publish","format-standard","hentry","category-operating-system"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Zombie Processes and their Prevention<\/title>\n<meta name=\"description\" content=\"A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zombie Processes and their Prevention\" \/>\n<meta property=\"og:description\" content=\"A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-10T07:10:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Zombie Processes and their Prevention\",\"datePublished\":\"2024-06-10T07:10:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\"},\"wordCount\":837,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png\",\"articleSection\":[\"Operating system\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\",\"name\":\"Zombie Processes and their Prevention\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png\",\"datePublished\":\"2024-06-10T07:10:14+00:00\",\"description\":\"A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Operating system\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/operating-system\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Zombie Processes and their Prevention\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zombie Processes and their Prevention","description":"A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/","og_locale":"en_US","og_type":"article","og_title":"Zombie Processes and their Prevention","og_description":"A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table.","og_url":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2024-06-10T07:10:14+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Zombie Processes and their Prevention","datePublished":"2024-06-10T07:10:14+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/"},"wordCount":837,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png","articleSection":["Operating system"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/","url":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/","name":"Zombie Processes and their Prevention","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png","datePublished":"2024-06-10T07:10:14+00:00","description":"A zombie process, also known as a defunct process, is a process that has completed execution but still has an entry in the process table.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1718003397615-Zombie%20Processes%20and%20Their%20Prevention.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/zombie-processes-and-their-prevention\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Operating system","item":"https:\/\/prepbytes.com\/blog\/category\/operating-system\/"},{"@type":"ListItem","position":3,"name":"Zombie Processes and their Prevention"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/19102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=19102"}],"version-history":[{"count":1,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/19102\/revisions"}],"predecessor-version":[{"id":19103,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/19102\/revisions\/19103"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=19102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=19102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=19102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}