{"id":95,"date":"2009-03-24T13:40:01","date_gmt":"2009-03-24T02:40:01","guid":{"rendered":"http:\/\/blog.peter-johnson.com.au\/?p=95"},"modified":"2009-03-24T13:40:01","modified_gmt":"2009-03-24T02:40:01","slug":"95","status":"publish","type":"post","link":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/","title":{"rendered":""},"content":{"rendered":"<p>Today I was writing an application under Ubuntu Linux where I wanted the user to be able to click on a shell script to start running the main C++ application as a daemon in the background. I found a few example scripts using the nohup and disown commands but none of them seemed to work and my application would terminate as soon as the shell window closed. I found that it was necessary to include a sleep command between spawning the process and using the $! result for the disown command.<\/p>\n<p>A few of the example scripts I found didn&#8217;t include a sleep and seemed to be parts of well tested and documented packages so maybe this requirement varies by Linux distros. The following is the latter segment of the bash shell script I wrote:<\/p>\n<pre>nohup $INSTALLDIR\/myapp &lt;\/dev\/null &gt;&gt;$INSTALLDIR\/myapp.log 2&gt;&amp;1 &amp;\nsleep 1\nNEWPID=$!\ndisown $NEWPID\nexit 0<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Today I was writing an application under Ubuntu Linux where I wanted the user to be able to click on a shell script to start running the main C++ application as a daemon in the background. I found a few example scripts using the nohup and disown commands but none of them seemed to work [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-95","post","type-post","status-publish","format-standard","hentry","category-linux"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>- Peter Johnson&#039;s Blog<\/title>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"- Peter Johnson&#039;s Blog\" \/>\r\n<meta property=\"og:description\" content=\"Today I was writing an application under Ubuntu Linux where I wanted the user to be able to click on a shell script to start running the main C++ application as a daemon in the background. I found a few example scripts using the nohup and disown commands but none of them seemed to work [&hellip;]\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Peter Johnson&#039;s Blog\" \/>\r\n<meta property=\"article:published_time\" content=\"2009-03-24T02:40:01+00:00\" \/>\r\n<meta name=\"author\" content=\"Peter Johnson\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Peter Johnson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\"},\"author\":{\"name\":\"Peter Johnson\",\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c\"},\"headline\":\"No title\",\"datePublished\":\"2009-03-24T02:40:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\"},\"wordCount\":135,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\",\"url\":\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\",\"name\":\"- Peter Johnson&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#website\"},\"datePublished\":\"2009-03-24T02:40:01+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#website\",\"url\":\"https:\/\/blog.peter-johnson.com.au\/\",\"name\":\"Peter Johnson&#039;s Blog\",\"description\":\"Hobart, Tasmania Software Development\",\"publisher\":{\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.peter-johnson.com.au\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c\",\"name\":\"Peter Johnson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blog.peter-johnson.com.au\/wp-content\/uploads\/2022\/03\/168849_1786067253024_5579222_n.jpg\",\"contentUrl\":\"https:\/\/blog.peter-johnson.com.au\/wp-content\/uploads\/2022\/03\/168849_1786067253024_5579222_n.jpg\",\"width\":160,\"height\":120,\"caption\":\"Peter Johnson\"},\"logo\":{\"@id\":\"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/blog.peter-johnson.com.au\"],\"url\":\"https:\/\/blog.peter-johnson.com.au\/index.php\/author\/peterj\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"- Peter Johnson&#039;s Blog","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:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/","og_locale":"en_US","og_type":"article","og_title":"- Peter Johnson&#039;s Blog","og_description":"Today I was writing an application under Ubuntu Linux where I wanted the user to be able to click on a shell script to start running the main C++ application as a daemon in the background. I found a few example scripts using the nohup and disown commands but none of them seemed to work [&hellip;]","og_url":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/","og_site_name":"Peter Johnson&#039;s Blog","article_published_time":"2009-03-24T02:40:01+00:00","author":"Peter Johnson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Peter Johnson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/#article","isPartOf":{"@id":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/"},"author":{"name":"Peter Johnson","@id":"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c"},"headline":"No title","datePublished":"2009-03-24T02:40:01+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/"},"wordCount":135,"commentCount":0,"publisher":{"@id":"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c"},"articleSection":["Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/","url":"https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/","name":"- Peter Johnson&#039;s Blog","isPartOf":{"@id":"https:\/\/blog.peter-johnson.com.au\/#website"},"datePublished":"2009-03-24T02:40:01+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.peter-johnson.com.au\/index.php\/2009\/03\/24\/95\/"]}]},{"@type":"WebSite","@id":"https:\/\/blog.peter-johnson.com.au\/#website","url":"https:\/\/blog.peter-johnson.com.au\/","name":"Peter Johnson&#039;s Blog","description":"Hobart, Tasmania Software Development","publisher":{"@id":"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.peter-johnson.com.au\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/4c77aa7d5243430f95831ecb7277546c","name":"Peter Johnson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/image\/","url":"https:\/\/blog.peter-johnson.com.au\/wp-content\/uploads\/2022\/03\/168849_1786067253024_5579222_n.jpg","contentUrl":"https:\/\/blog.peter-johnson.com.au\/wp-content\/uploads\/2022\/03\/168849_1786067253024_5579222_n.jpg","width":160,"height":120,"caption":"Peter Johnson"},"logo":{"@id":"https:\/\/blog.peter-johnson.com.au\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/blog.peter-johnson.com.au"],"url":"https:\/\/blog.peter-johnson.com.au\/index.php\/author\/peterj\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/posts\/95","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=95"}],"version-history":[{"count":0,"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/posts\/95\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.peter-johnson.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}