{"action":"created","issue":{"url":"https://api.github.com/repos/mattn/goreman/issues/27","repository_url":"https://api.github.com/repos/mattn/goreman","labels_url":"https://api.github.com/repos/mattn/goreman/issues/27/labels{/name}","comments_url":"https://api.github.com/repos/mattn/goreman/issues/27/comments","events_url":"https://api.github.com/repos/mattn/goreman/issues/27/events","html_url":"https://github.com/mattn/goreman/issues/27","id":166034612,"number":27,"title":"Procfile configure problem","user":{"login":"orainxiong","id":778876,"avatar_url":"https://avatars.githubusercontent.com/u/778876?v=3","gravatar_id":"","url":"https://api.github.com/users/orainxiong","html_url":"https://github.com/orainxiong","followers_url":"https://api.github.com/users/orainxiong/followers","following_url":"https://api.github.com/users/orainxiong/following{/other_user}","gists_url":"https://api.github.com/users/orainxiong/gists{/gist_id}","starred_url":"https://api.github.com/users/orainxiong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orainxiong/subscriptions","organizations_url":"https://api.github.com/users/orainxiong/orgs","repos_url":"https://api.github.com/users/orainxiong/repos","events_url":"https://api.github.com/users/orainxiong/events{/privacy}","received_events_url":"https://api.github.com/users/orainxiong/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-18T07:29:34Z","updated_at":"2016-07-18T11:40:57Z","closed_at":null,"body":"web5: go run web.go -a :$PORT\r\n\r\nIt will cause client hang while stop web5,because of \"http://stackoverflow.com/questions/24982845/process-kill-on-child-processes\" \r\n\r\nWe need compile web.go to solve this problem,like below\r\nweb5: go run ./web -a :$PORT\r\n\r\nI recommend add timeout feature for function stopProc\r\n```\r\nfunc stopProc(proc string, quit bool) error {\r\n\tp, ok := procs[proc]\r\n\tif !ok {\r\n\t\treturn errors.New(\"Unknown proc: \" + proc)\r\n\t}\r\n\tp.mu.Lock()\r\n\tdefer p.mu.Unlock()\r\n\r\n\tif p.cmd == nil {\r\n\t\treturn nil\r\n\t}\r\n\r\n\tp.quit = quit\r\n\terr := terminateProc(proc)\r\n\tif err != nil {\r\n\t\treturn err\r\n\t}\r\n\r\n\tvar done = make(chan bool, 1)\r\n\r\n\tgo func(done chan bool) {\r\n\t\tp.cond.Wait()\r\n\t\tdone <- true\r\n\t}(done)\r\n\r\n\tselect {\r\n\tcase <-time.After(1 * time.Second):\r\n\t\tp.cond.Signal()\r\n\t\t<- done\r\n\t\terr = errors.New(\"stop timeout\")\r\n\tcase <-done:\r\n\t\terr = nil\r\n\t}\r\n\treturn err\r\n}\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/mattn/goreman/issues/comments/233306413","html_url":"https://github.com/mattn/goreman/issues/27#issuecomment-233306413","issue_url":"https://api.github.com/repos/mattn/goreman/issues/27","id":233306413,"user":{"login":"mattn","id":10111,"avatar_url":"https://avatars.githubusercontent.com/u/10111?v=3","gravatar_id":"","url":"https://api.github.com/users/mattn","html_url":"https://github.com/mattn","followers_url":"https://api.github.com/users/mattn/followers","following_url":"https://api.github.com/users/mattn/following{/other_user}","gists_url":"https://api.github.com/users/mattn/gists{/gist_id}","starred_url":"https://api.github.com/users/mattn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattn/subscriptions","organizations_url":"https://api.github.com/users/mattn/orgs","repos_url":"https://api.github.com/users/mattn/repos","events_url":"https://api.github.com/users/mattn/events{/privacy}","received_events_url":"https://api.github.com/users/mattn/received_events","type":"User","site_admin":false},"created_at":"2016-07-18T11:40:57Z","updated_at":"2016-07-18T11:40:57Z","body":"goreman have implementation that send signal to process group. and have timeout already."}}
{"actor":{"display_login":"mattn"}}