Как добраться, командная строка args передал рабочему процессу в системах unix/linux?

Вот подход, использующий dplyr и tidyr из метапакета tidyverse. Я подозреваю, что есть более простой способ сделать это в базе R ...

Сначала я определяю порядок столбцов, используя только «расположение», делая версию df1, которая объединяет все строки в каждом столбце и рассматривает все ненулевые элементы как 1. Сортировав это, мы получаем порядок, который хотим. Затем я беру df1 со столбцами в этом порядке.

library(tidyverse)
col_order <- data_frame(cols = names(df1),
                  concat = apply(df1, 2, paste0, collapse = "")) %>%
  mutate(concat_binary = concat %>% str_replace_all("[123456789]", "1")) %>%
  arrange(desc(concat_binary)) %>%
  pull(cols)

df1 %>% 
  select(col_order)

#  g1 g2 g5 g6 g7 g10 g3 g4 g11 g8 g9
#1  1  1  3  4  4   6  0  0   0  0  0
#2  0  0  0  0  0   0  2  2   8  0  0
#3  0  0  0  0  0   0  0  0   0  2  2
#4  0  0  0  0  0   0  0  0   0  2  2
#5  0  0  0  0  0   0  0  0   0  0  0
188
задан codeforester 21 February 2018 в 11:23
поделиться

2 ответа

Есть несколько вариантов:

ps -fp <pid>
cat /proc/<pid>/cmdline | sed -e "s/\x00/ /g"; echo

Больше информации в / proc / в Linux, просто посмотрите.

В других Unixes все может быть иначе. Команда ps будет работать везде, а материал / proc зависит от ОС. Например, в AIX отсутствует cmdline в / proc .

290
ответ дан 23 November 2019 в 05:43
поделиться

В Linux

cat /proc/<pid>/cmdline

получает командную строку процесса (включая аргументы), но со всеми пробелами, замененными на символы NUL.

14
ответ дан 23 November 2019 в 05:43
поделиться
Другие вопросы по тегам:

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