Найдите родителя процесса

Ваша версия tar по-видимому, не обеспечивает этот переключатель/функцию. Таким образом, необходимо будет сделать это на 2 шагах:

$ gunzip gcc-2.95.2pl1-dist.tar.gz
$ tar xvf gcc-2.95.2pl1-dist.tar

Для получения дополнительной информации смотрите на страницу справочника для tar и также проверьте tarопции.

2
25.11.2014, 00:00
3 ответа

я закончил тем, что использовал следующее:

grep-r $ "$command" (ls-l/proc/$pid/cwd | awk '{печатают 11$}'), | awk-F: '{Печатают 1$}'

, Где $command =" $ (кошка/proc/$pid/cmdline | sed 's\x0/g' | sed 's/. $//')"

, Который будет рекурсивно grep через файлы в каталоге, что сценарий находится в найти файл, содержащий командную строку, которая выполнила команду nc.

Кажется довольно грязным, поэтому если бы кто-либо мог бы помочь очистить это немного, это было бы большим :)

спасибо за парней справки!

-1
27.01.2020, 21:54

Это скорее дополнительный анализ, чем фактический ответ, но он, по-видимому, варьируется в зависимости от сортируемых данных. Во-первых, база, читающая:

$ printf "%s\n" {1..1000000} > numbers.txt

$ time python sort.py <numbers.txt >s1.txt
real    0m0.521s
user    0m0.216s
sys     0m0.100s

$ time sort <numbers.txt >s2.txt
real    0m3.708s
user    0m4.908s
sys     0m0.156s

ОК, питон намного быстрее. Тем не менее, вы можете сделать coreutils сортировать быстрее, сказав ему, чтобы сортировать численно:

$ time sort <numbers.txt >s2.txt 
real    0m3.743s
user    0m4.964s
sys     0m0.148s

$ time sort -n <numbers.txt >s2.txt 
real    0m0.733s
user    0m0.836s
sys     0m0.100s

Это намного быстрее, но питон по-прежнему выигрывает с большим отрывом. Теперь давайте попробуем еще раз, но с несортированным списком 1M чисел:

$ sort -R numbers.txt > randomized.txt

$ time sort -n <randomized.txt >s2.txt 
real    0m1.493s
user    0m1.920s
sys     0m0.116s

$ time python sort.py <randomized.txt >s1.txt
real    0m2.652s
user    0m1.988s
sys     0m0.064s

coreutils sort -n быстрее для несортированных числовых данных (хотя, возможно, вы сможете настроить параметр сортировки python cmp , чтобы сделать его более быстрым). Coreutils сортировка все еще значительно медленнее без флага -n . Итак, как насчет случайных символов, а не чистых чисел?

$ tr -dc 'A-Za-z0-9' </dev/urandom | head -c1000000 | 
    sed 's/./&\n/g' > random.txt

$ time sort  <random.txt >s2.txt 
real    0m2.487s
user    0m3.480s
sys     0m0.128s

$ time python sort.py  <random.txt >s2.txt 
real    0m1.314s
user    0m0.744s
sys     0m0.068s

Python все еще бьет кореутиль, но с гораздо меньшим отрывом, чем то, что вы показываете в вашем вопросе. Удивительно, но это все еще быстрее, если смотреть на чисто алфавитные данные:

$ tr -dc 'A-Za-z' </dev/urandom | head -c1000000 |
    sed 's/./&\n/g' > letters.txt

$ time sort   <letters.txt >s2.txt 
real    0m2.561s
user    0m3.684s
sys     0m0.100s

$ time python sort.py <letters.txt >s1.txt
real    0m1.297s
user    0m0.744s
sys     0m0.064s

Также важно отметить, что они не дают одинаковых отсортированных выходных данных:

$ echo -e "A\nB\na\nb\n-" | sort -n
-
a
A
b
B

$ echo -e "A\nB\na\nb\n-" | python sort.py 
-
A
B
a
b

Как ни странно, вариант -buffer-size , похоже, не сильно (или не сильно) отличался в моих тестах. В заключение, предположительно из-за различных алгоритмов, упомянутых в ответе goldilock, питон сортировать кажется в большинстве случаев быстрее, но числовой GNU сортировать бьет его по несортированным числам 1 .


OP, вероятно, нашел первопричину , но ради полноты, вот окончательное сравнение:

$ time LC_ALL=C sort   <letters.txt >s2.txt 
real    0m0.280s
user    0m0.512s
sys     0m0.084s


$ time LC_ALL=C python sort.py   <letters.txt >s2.txt 
real    0m0.493s
user    0m0.448s
sys     0m0.044s

1 Кто-то с большим количеством python-fu, чем я должен попытаться проверить настройки list.sort () , чтобы увидеть ту же скорость может быть достигнута путем указания метода сортировки.

-121--2387-

Можно использовать команду get pid running location, используя команды

ls -l/ proc/PID_id/cwd

-1
27.01.2020, 21:54

, чтобы получить родительскую PID процесса, портативно (POSIXLY), вы можете использовать:

ps -p "$PID" -o ppid=

или (на Linux):

grep '^PPid' "/proc/$PID/status" |cut -f2

Для более того, см. https://superuser.com/questions/150117/how-to-get-parent-pid-of--givin-process-in-gnu-linux- из командной строки

8
27.01.2020, 21:54

Теги

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