Есть ли способ изменить процесс процессы бегущего процесса?

Amazon AWS

curl https://checkip.amazonaws.com

Пример вывода:

123.123.123.123

Мне нравится, потому что:

  • он возвращает только открытый IP, ничего другого
  • это от известного провайдера, который вряд ли перейдет в автономный режим в ближайшее время
-121--214-

Этот вопрос годик, но у меня такие же проблемы, также на 14,04, используя xmon- Причина, кажется, Java apps. Всякий раз, когда приложение Java работает более дня или около того, половина моей памяти заполняется Xorg. Java-приложения, как правило, не отображаются должным образом с xmonad, что может быть решено путем установки wmname на LG3D, и я предполагаю, что некоторые предположения сделаны о xmonad очистки вещей, даже если это не так, тогда как LG3D бы. Однако это чисто спекуляция.

Что касается ответа на фактический вопрос: одна вещь, которая работает для меня, это просто sudo lightdm restart и вход обратно. Это некрасиво, но это не так плохо, как перезагрузка: он не трогает сеть, а значит, любые ssh-сеансы сохраняются в живых. Кроме того, это намного быстрее, чем перезагрузка моего компьютера. Если кто-нибудь когда-нибудь придет с правильным ответом, я буду счастливым человеком, но пока это делает его управляемым.

-121--65455-

FreeNas позволяет настроить более безопасные общие ресурсы. Если разрешены самые низкие протоколы безопасности Windows (windows NT 4.0), они будут работать с samba. Если у вас есть набор, скажем, протоколы Windows XP и выше вы требуете vers = 3,0, как я обнаружил после борьбы в течение 40 минут, чтобы получить FreeNas connecte wiv CentOS 7. Проблема в том, что клиенты (и GUI) должны проверять самую высокую версию. Вместо этого она исходит из самой низкой доступной версии. Возможно, это имело смысл, но многое изменилось. Я думаю, что особенно раздражает, что в Gnome нельзя добавлять опции, как для использования CIFS, так и для указания версий протокола безопасности. Я думаю, они считают, что для этих людей это командная строка или ничего, но это не позволяет Linux более широко использоваться настольными пользователями. что на самом деле обидно.

3
13.08.2018, 02:22
1 ответ

Процесс может установить свои собственные PGID и SID с помощью системных вызовов setpgidsetsid. Целевая группа/сеанс не может быть выбрана произвольно:setpgidможет только перейти к другой группе процессов в том же сеансе или создать новую группу процессов, PGID которой равен PID; setsidможет переместить процесс только в его собственный сеанс, сделав SID равным PID.

Эти вызовы зарезервированы для самого процесса :процесс не может изменить PGID или SID другого процесса, за одним исключением :процесс может изменить PGID своих дочерних процессов, если они все еще используют исходный образ процесса (т.е. они не вызывали execveдля запуска другой программы ).

Некоторые системы могут допускать другое поведение, но я не думаю, что какая-либо современная система Unix принципиально отклоняется.

Можно косвенно изменить PGID или SID процесса, используя отладчик, чтобы заставить процесс вызывать системный вызов setpgidили setsid(черезptrace). Поскольку для этого требуется разрешение ptrace, это должно быть выполнено из другого процесса, работающего от имени пользователя root или того же пользователя, и не должно быть никаких ограничений на отладку (многие современные системы Linux требуют, чтобы отладчик был предком отлаживаемой программы. ).

PID процесса никогда не меняется. PPID процесса может измениться только один раз и только по одной причине :когда родитель умирает, PPID меняется с PID родителя на 1 (процесс принимается init).

Обратите внимание, что в некоторых системах процесс может иметь разные значения PID (и, следовательно, также PPID/PGID/SID, поскольку все они начинаются как PID некоторого процесса ), в зависимости от того, как вы на это смотрите. Например, в пространствах имен Linux у каждого процесса может быть свой PID в каждом пространстве имен, где он виден.

3
27.01.2020, 21:21

Теги

Похожие вопросы