Làm thế nào tôi có thể bắt đầu một quá trình với một tên khác?


12

Về cơ bản tôi muốn tự động bắt đầu một số quy trình có thể tạo ra các quy trình con của riêng chúng, tôi cũng muốn giết một nhóm quy trình nhất định mà tôi vừa tạo bất cứ khi nào tôi muốn.

Một cách tôi có thể nghĩ đến là bắt đầu các quy trình với một tên (để phân biệt thành một nhóm), sau đó sử dụng pkillđể giết chúng theo tên.

Câu hỏi là làm thế nào để bắt đầu một quá trình với một cái tên để tôi có thể sử dụng pkillđể giết chúng theo tên? Tôi mở cho các giải pháp khác là tốt.


Bạn đang hỏi làm thế nào để bắt đầu một quá trình với một tên khác với những gì nó thường sử dụng ? Hay bạn chỉ hỏi làm thế nào để bắt đầu một quá trình từ dòng lệnh?
Eliah Kagan

Tên quy trình được hiển thị giống như tên tệp của nó theo mặc định trong Linux. Tôi không muốn sử dụng tên tệp mặc định của nó làm tên quy trình cũng như thay đổi tên tệp mỗi lần tôi chạy. Vì vậy, tôi muốn bắt đầu các quy trình với một tên cụ thể mà tôi muốn để tôi có thể sử dụng 'pkill -f MyOwnName' để tiêu diệt tất cả các quy trình mà tôi vừa bắt đầu có tên MyOwnName cùng một lúc.
bộ nhớ cache

Câu trả lời:


12

Bạn có thể sử dụng execshell dựng sẵn:

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

<command>thay thế trình bao hiện tại, không có quy trình mới nào được tạo, đó là lý do tại sao tôi bắt đầu một trình bao mới để gọi exec.

Sau đó, bạn có thể giết quá trình với:

pkill -f MyUniqueProcessName

Bạn có thể bắt đầu nhiều hơn một quá trình dưới cùng một tên, sau đó pkill -f <name>sẽ giết tất cả chúng.


Làm thế nào để bạn hoàn tác bash -c "exec -a MyUniqueProcessName <command> &"?
VNVN

1
@VNVN bạn không thể. Nếu một lệnh đã được chạy, nó đã chạy. Để "hoàn tác" nó, bạn cần biết chính xác những gì nó đã làm và hoàn tác thủ công, nếu có thể. Không có Ctrl + Z khi chạy lệnh.
terdon

+1. Quan sát của tôi là: tên được sử dụng để exec -a name sleep 100hiển thị khi tôi làm ps -efnhưng không phải khi tôi làm pstree -p.
Trevor Boyd Smith

Nó không hoạt động cho meld. ->bash -c "exec -a mymeld123 meld &"
Eduardo Lucio

0

AMItac / Cơ quan Solaris

tôi có trường hợp này với một công cụ chuyển mã âm thanh. (chạy 3 lần) nhưng chỉ có MỘT Tên.

Tôi đã làm theo. Wen Tiếtt vào thư mục bin từ công cụ Shell và sao chép nó 3 lần và đặt cho nó một Tên mới. tc-1, tc-2, tc-3 (nó là công cụ nhỏ vì vậy nó không ăn nhiều Harddisc Space (với các tệp nhị phân béo bạn không nên sử dụng các cách được đề cập khác)

vì vậy quá trình bắt đầu với một Tên duy nhất và có thể bị giết bằng Tên duy nhất này mà không có nguy cơ giết chết các quá trình chuyển mã khác mà tôi muốn tiếp tục.

một thủ thuật khác MIGHT làm việc ....

thêm tập lệnh #bash Name.sh, làm cho nó có thể thực thi được. Nhập các lệnh của bạn ở đó và bắt đầu tập lệnh bash. Trên Centos, nó sử dụng Tên Bashscript mà bạn đã thực hiện và không phải là Tên bin.

Hy vọng một cái gì đó giúp ai đó ngoài kia.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.