On May 23, 10:28 ¨Âí¬ ÐòÂèáîäá¼ðâèáîäáòé²®®®Àçíáéì®ãïí÷òïôåº > Hi, > > I am trying to start Webrick as root user and get TCP Bind error even > though the port appears to be not taken. ¨Âõîîéîç ôèóáíå óãòéðô áó > non-root user that owns the ruby installs works just fine. > > 1) Running dvdelta_start.sh runs just fine as a non root user > 2) Running the same script gives me TCP Bind error > ¨Âäöäåìôã ¢¯ïðô¯áððó¯äáôáöáéì¯ãõòòåîôäåìôá¯äöäåìôáßóôáòô®óè > start" 2>&1 >>/tmp/dvdelta.log > > I'd appreciate any pointers to help debug this issue. > > Thanks. > > Prakash > +++++++++++++++++++++++++++++++++++ > > The log file shows the following - > > [2009-05-22 04:46:37] INFO ¨ÂÅÂòéãë ±®³®> [2009-05-22 04:46:37] INFO ¨Âõâ±®¸®¨²°°¹°´°¸© Ûø¸¶ß¶´ìéîõøÝ > [2009-05-22 04t:46:47] WARN ¨ÂÃÐÓåòöåò Åòòïòº Áääòåóáìòåáäéî õó> bind(2) > [2009-05-22 04:46:47] INFO ¨ÂÅÂòéã뺺ÈÔÔÐÓåòöåò£óôáòôðéä½³°·³> port=8192 > > login as: root > > ++++++++++++++++++++++++++++++++++++++++++++++++++ > class JobServer > > ¨Âåæ éîéôéáìéúå¨êïâÒåðïóéôïòùðïòô> ¨ÂòåðïêïâÒåðïóéôïò> ¨Âðïòô ðïòô > ¨Âîä > > ¨Âåæ òõ> @server = HTTPServer.new( :Port => @port ) > @server.mount("/styles.css", CssServlet) > @server.mount("/jobs", ListJobsServlet, @repos) > @server.mount("/deploy", DeployJobServlet, @repos) > @server.mount("/", IndexServlet) > trap("INT"){ @server.shutdown } > @server.start > ¨Âîä > > end > / > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > Calling the server start... > > server = JobServer.new(jobRepository, 8192) > server.run > > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > The log file shows the following - > > [2009-05-22 04:46:37] INFO ¨ÂÅÂòéãë ±®³®> [2009-05-22 04:46:37] INFO ¨Âõâ±®¸®¨²°°¹°´°¸© Ûø¸¶ß¶´ìéîõøÝ > [2009-05-22 04:46:47] WARN ¨ÂÃÐÓåòöåò Åòòïòº Áääòåóáìòåáäéî õó> bind(2) > [2009-05-22 04:46:47] INFO ¨ÂÅÂòéã뺺ÈÔÔÐÓåòöåò£óôáòôðéä½³°·³> port=8192 > -- > Posted viahttp://www.ruby-forum.com/. Did you check to make sure that your app *really* isn't binding to port 8192? If it isn't, strace and netstat will be able to isolate that problem. More importantly, why does your app need to run as root? Running as root and connecting to the internet is the most reliable way to ensure you get compromised. If there are certain resources that *absolutely* require root to obtain, then obtain them as early as possible (definitely before starting the WEBrick server), then setuid down to a saner user.