Олег Цилюрик: Вот я добавил, а он не работает хотя в консоли работал: shell_exec('sudo screen -d -m -S ch'.$data.' script -c "ulimit -Sv 1 & sudo -u ch'.$data.' java -Xincgc -Xmx'.$servertype.'M -Xms'.$servertype.'M -XX:MaxPermSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=4 -XX:+AggressiveOpts -Dfile.encoding=UTF-8 -jar ch.jar" -f /home/ch'.$data.'.txt');
Владимир Мусихин:
Вы же это делаете в каком-то окружении, исполняющей системе, не консоль/терминал ... ни словом ни пол-словом в вопросе этого не было... кто за вас угадывать станет?
Олег Цилюрик: слышу, просто очень много работы.
"Обходится": значит процесс вырывается из его рамок.
Толком не работает: попробуйте поставьте ulimit на объем памяти или процессорное время и запустите fork-бомбу или burnMMX. Результат будет у вас перед глазами.
Ой! ...
А я и вправду перепугался, думал что бомба ... террористы обложили ...
То, что там пишут в WiKi - полная херня! ... по крайней мере, относительно POSIX/Linux ... что там в Windows-ах - не знаю, меня не колебёт...
Делаем ... "бомбу" ... блин ...
int main( int argc, char **argv ) {
int i = 0;
while( i++, fork() >= 0 );
printf( "i=%d\n", i );
kill( -2, SIGINT );
}
А дальше убеждаемся, что ... никакого "отказа от обслуживания" не происходит, а максимальное число процессов меняется точно следуя ulimit -Su ... (но вовсе не равно ему, как и следует быть).
Олег Цилюрик: "А я и вправду перепугался, думал что бомба ... террористы обложили ..."
Терпеть не могу сарказм от людей, которые переоценивают уровень своих знаний.
Не получилось по нормальному преодолеть лимит - вышвыривайте данные из резидентной памяти в виртуальную за счет импорта ненужных библиотек, которые можно на лету генерить пустышками. Не хватит знаний из резидентной выйти - бейте в дисковый кэш (все равно Linux через задницу drop caches делает). Уж не смочь выжрать всю память - это позор для программиста.
Олег Цилюрик: "То, что там пишут в WiKi - полная херня! ... по крайней мере, относительно POSIX/Linux "
Ну так сотрите и напишите как правильно. Это же wiki, где пишет социум, а не хозяин ресурса. Но я бы не рекомендовал портить документ, пока не разберетесь. Потому что по данному вопросу все верно там написано.
Так разобрался уже... - не первый год параллелизмами занимаюсь... Ещё лет десять назад написал книгу (которая по некоторым отзывам присланным "лучшее что написано на русском языке по вопросу"):
И ещё раз повторю: пыанэры пишут херню - они просто не разобрались что происходит в том, что они наблюдают. Вообще в пыанэрах это всегда смущает: ты сначала школу закончи, а потом пиши, а не наоборот.