Титла: Стартиране на standalone процес през терминала Публикувано от: Naminator_X_ в Nov 10, 2009, 21:17 Днес си RSync-нах едни сорсове на бекъп машината, която върви с Ubuntu Karmic Koala 9.10 Server Edition. Не знам защот този път не се реших да ползвам мета пакетите (например като nginx и php5-cgi) та свалиш си всичко сорсове extension-и и си ги компилирах и качих. Настроих nginx-a настроих РНР-то активирах му плъгини и всичко обаче възникна проблемче :/ Значи ето какво става. Влизам аз през ssh с PuTTY и си пиша /usr/local/php/bin/php-cgi -b 127.0.0.1:9000 и какво става...конзолата не ми дава да правя други действия...дефакто или трябва да си отворя нова сесия ИЛИ да затворя текущата ако реша да напускам терминала >.< Та въпроса ми е...има ли начин да извикам процес (без значение какъв) да ми се отдели от конзолата и да си стои standalone както е примерно nginx...друг вариант е да си направя тази команда да се изпълнява с тръгването на сървъра, обаче на мен не ми трябва тази поддръжка нон-стоп все пак това е backup сървър (чат пат тест) и искам да си я пускам и спирам когато поискам, но да мога и да правя други неща на компютъра, а не да пусна РНР и да гледам умно или да отварям втора сесия >.< Търсих из Google, но наистина не зная за какво да търся и естествено не открих нужната информация :/
Титла: Re: Стартиране на standalone процес през терминала Публикувано от: shoshon в Nov 10, 2009, 21:32 Гледам, че си запознат доста добре с Линукс, което ме притеснява аз да не кажа някаква глупост....
Код: [user@server#] command& От "научна гледна точка" това се казва демонизиране :). Просто да знаеш :) Титла: Re: Стартиране на standalone процес през терминала Публикувано от: Ipolit в Nov 10, 2009, 21:37 може като го пуснеш процеса, да го паузираш с ctrl+Z и после да го пуснеш в background да си върви с 'bg'. После може да се върнеш при него с 'fg'.
Туй в случай, че си забравил, че ще се откачаш. Аз лично предпочитам screen. То си е програмка, разгледай го. Пускаш си процес, откачаш се или си създаваш нов скрийн за нов процес и си се местиш между всичките. Много е яко. С амперсанда не знам може ли да се закачаш пак към задачата, тъй че вероятно не е опция за всички случаи. Титла: Re: Стартиране на standalone процес през терминала Публикувано от: arda_kj в Nov 10, 2009, 21:45 Малко добавка към обясненията на колегите:
http://www.linux-bg.org/forum/index.php?topic=35407.msg178005#msg178005 Титла: Re: Стартиране на standalone процес през терминала Публикувано от: bop_bop_mara в Nov 10, 2009, 21:50 Код е пускане във фонов режим. Демонът е нещо малко по-различно, той е процес без управляващ терминал, син на init със съответните демоснки задължения. Код ще направи "демонизиране" на твоя процес, т.е. ще го остави без управляващия терминал и ще му смени родителя с init. Оттам нататък можеш да си го трепеш с kill. Само че няма как да се върнеш към управлението му. Ако ти върши работа това :) Титла: Re: Стартиране на standalone процес през терминала Публикувано от: Naminator_X_ в Nov 10, 2009, 21:50 Гледам, че си запознат доста добре с Линукс, което ме притеснява аз да не кажа някаква глупост.... Точно от каквото имах нужда :) Мерси ! Също благодаря и за другите коментари. Макар, че на мен лично не ми вършат работа в момента, може да ми потрябват в бъдеще и това може би клони повече към вероятно, така че :) Титла: Re: Стартиране на standalone процес през терминала Публикувано от: bop_bop_mara в Nov 10, 2009, 21:56 Внимавай с фоновия режим, ако процесът, който пускаш във фонов режим, има нужда от стандартен вход, изход и изход за грешки, може да стане мазано. Ако искаш наистина да пуснеш демон, disown-вай го.
Код
Титла: Re: Стартиране на standalone процес през терминала Публикувано от: Naminator_X_ в Nov 11, 2009, 01:15 По принцип си хващам увисналите процеси с top и ps ax и си ги kill-вам и естествено "демонизирам", когато съм сигурен, че тази програма не и трябва допълнително човъркане, както е top и mytop (мониторинг на MySQL заявките в реално време) пък и те са такива, че ги пускам за по 5-10 минути да видя как се държи сървъра и ги спирам по съвсем човечен начин. Обаче на php-cgi не му трябваше да върви отделен конзолен процес и ми трябваше решение, което вие дадохте с доста обяснения, за което съм ви благодарен !
ps ax | grep nginx ми е много полезен тъй като nginx-a пуска няколко процеса и когато има доста редове трудно го откривам, а така ми показва master процеса и останалите подредени както трябва :) а това grep е много удобно ! Работя по големи проекти и когато забравя кое къде съм сложил правя един бърз "Find in files" :) От скоро се занимавам с линукс администрация, но честно казано...започва да ми харесва :) Дори домашния ми компютър е вече на dualboot и през повечето време ми стои на линукс Титла: Re: Стартиране на standalone процес през терминала Публикувано от: ivanatora в Nov 11, 2009, 09:02 Можеш да пробваш със screen <cmd> и после да откачиш екрана с CTRL+A D. Предимството е че можеш да затвориш пути-то без да се убие процеса и дори можеш да отвориш ново пути и със screen -r да възстановиш сесията (ако ти трябва да видиш някакви съобщения, примерно).
Виж също и nohup. |