Як я можу розпочати процес з іншою назвою?


12

В основному я хочу динамічно запускати деякі процеси, які можуть створювати свої власні дитячі процеси, також я хочу знищити певну групу процесів, які я щойно створив, коли захочу.

Один із способів, про який я міг би придумати, - це запустити процеси з іменем (виділити як групу), а потім використовувати, pkillщоб вбити їх за іменем.

Питання в тому, як запустити процес з іменем, щоб я міг використовувати їх pkillдля вбивства на ім'я? Я також відкритий для інших рішень.


Ви запитуєте, як запустити процес з іменем, відмінним від того, яке зазвичай використовується ? Або ви просто запитуєте, як запустити процес з командного рядка?
Елія Каган

Назва за замовчуванням у Linux відображається так само, як його ім'я файлу. Я не хочу використовувати його ім'я файлу за замовчуванням як його ім'я процесу, а також не змінювати ім'я файлу кожного разу, коли я запускаю. Отже, я хочу запустити процеси з певним ім'ям, яке я хочу, щоб я міг використовувати "pkill -f MyOwnName", щоб знищити всі процеси, які я щойно почав з іменем MyOwnName.
кеш

Відповіді:


12

Ви можете використовувати execвбудовану оболонку:

bash -c "exec -a MyUniqueProcessName <command> &"

<command>замінює поточну оболонку, новий процес не створюється, тому я запускаю нову оболонку для виклику exec.

Тоді ви можете вбити процес за допомогою:

pkill -f MyUniqueProcessName

Ви можете запустити більше одного процесу під тим самим іменем, після pkill -f <name>чого вб'єте їх усіх.


Як ви скасуєте bash -c "exec -a MyUniqueProcessName <command> &"?
VNVN

1
@VNVN ти не можеш. Якщо команда була запущена, вона запущена. Щоб "скасувати" його, потрібно точно знати, що він зробив, і скасувати це, якщо можливо, вручну. При виконанні команд немає Ctrl + Z.
тердон

+1. моє спостереження: ім'я, яке використовується для exec -a name sleep 100показу, коли я це роблю, ps -efале не коли я pstree -p.
Тревор Бойд Сміт

Це не працює для meld. ->bash -c "exec -a mymeld123 meld &"
Едуардо Лусіо

0

AMItac / Агенція Solaris

У мене є цей випадок з інструментом перекодування аудіо. (працює 3 рази), але має лише Одне ім’я.

Я робив наступні. Не потрапив до кошика з інструменту Shell і скопіював його 3 рази і дав йому нове ім'я. tc-1, tc-2, tc-3 (це невеликий інструмент, тому він не їсть багато місця Harddisc Space (з бінарними жирами ви не повинні використовувати інші згадані способи)

тому процес розпочався з унікального Імені, і його можна вбити за допомогою цього унікального Імені без небезпеки вбити інші процеси перекодування, які я хочу продовжувати.

ще одна хитрість МОЖНА працювати ....

додайте скрипт #bash Name.sh, зробіть його виконуваним. Введіть там свої команди та запустіть сам скрипт bash. У Centos він використовує тоді назва Bashscript, яке ви вказали, а не саме ім'я біна.

Сподіваюся, що щось допомагає комусь там.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.