Как изменить argv0 в ударе, таким образом, команда обнаруживается с другим именем в PS?

В программе C я могу записать argv [0], и новое имя обнаруживается в списке PS.

Как я могу сделать это в ударе?

23
задан Charles 11 February 2012 в 21:55
поделиться

4 ответа

У меня была возможность просмотреть исходный текст bash, и не похоже, что там есть поддержка записи в argv[0].

9
ответ дан 29 November 2019 в 01:18
поделиться
( exec -a foo bash -c 'echo $0' ) 
5
ответ дан 29 November 2019 в 01:18
поделиться

Это можно сделать при запуске новой программы с помощью exec -a <новое имя> .

27
ответ дан 29 November 2019 в 01:18
поделиться

Добавлю только, что это возможно во время выполнения, по крайней мере, в некоторых средах. Присвоение $0 в perl на linux действительно изменяет то, что отображается в ps. Однако я не знаю, как это реализовано. Если мне удастся это выяснить, я обновлю эту статью.

edit: Судя по тому, как это делает perl, это нетривиально. Я сомневаюсь, что есть какой-либо встроенный способ во время выполнения, но не знаю точно. Вы можете посмотреть как perl задает имя процесса во время выполнения.

0
ответ дан 29 November 2019 в 01:18
поделиться
Другие вопросы по тегам:

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