Làm thế nào tôi có thể làm cho tất cả các quy trình của tôi bắt đầu với sự độc đáo 5


8

Tôi biết rằng các giá trị độ đẹp được kế thừa từ giá trị độ đẹp của quy trình cha, nhưng tôi có thể thay đổi toàn cầu giá trị độ đẹp mặc định cho một người dùng cụ thể (bản thân tôi).

Trong trường hợp này, tôi có một máy chủ tiện lợi nhỏ, được truy cập thông qua ssh. Vì vậy, tôi nghĩ rằng tôi có thể thay đổi vỏ mặc định của tôi từ /bin/bashđến /etc/bash5khi /etc/bash5là kịch bản này:

#!/bin/sh
nice -n 5 /bin/bash

#file privileges: root:root 755

Điều này đánh tôi là một hack khủng khiếp và dễ bị lỗi. Phải có cách tốt hơn.

Tôi chủ yếu quan tâm đến các giải pháp chung, điều đó cũng sẽ áp dụng cho hệ thống máy tính để bàn / máy tính xách tay.


Chỉnh sửa: Tôi đã thử limits.confthay đổi được đề xuất , nhưng nó không hoạt động như mong đợi:

root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf

Sau đó, từ máy khách của tôi, tôi nói

myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop

Bây giờ, sleepquá trình có giá trị độ đẹp ban đầu là0 , nhưng nếu tôi thay đổi giá trị F8thành 19 và sau đó cố gắng giảm nó một lần nữa với F7 nó dừng lại ở5 .

Chỉnh sửa2: Giải pháp

Thay vì sử dụng nicevật phẩm trong limits.conf, bạn thực sự phải sử dụng prioritymặc dù nó là phản trực giác.

@nice soft priority 5

Có thể đặt một renice -n 5trong của bạn ~/.profile?
jw013

@ jw013: Đó là một ý tưởng tốt hơn so với bash5phương pháp của tôi , tôi cung cấp cho bạn điều này. Nhưng nó vẫn vỡ nếu tôi nói ssh myserver -- somecommandkhông phải sao?
bitmask

@bitmask. Tôi không thể tái tạo kết quả của bạn cho limits.conf. Đầu ra của bạn để làm ps -o pid,nice,cmdgì?
donothings thành công

1
Vui lòng gửi giải pháp cho các vấn đề của riêng bạn dưới dạng câu trả lời , thay vì chỉnh sửa câu hỏi của bạn. Cảm ơn! (Không thể cung cấp câu trả lời của riêng bạn cho câu hỏi của riêng bạn.)
mattdm

Một lưu ý khác: đây không phải là những gì bạn đã hỏi, nhưng bạn có thể thấy rằng các nhóm cung cấp cách thức hiệu quả hơn (giảm mức độ ưu tiên cho một người dùng nhất định) mà bạn muốn hơn nice.
mattdm

Câu trả lời:


7

Bạn có thể đặt mức độ ưu tiên cho một người dùng cụ thể trong /etc/security/limits.conftệp.

root       hard/soft     priority    10

Bằng cách này, bạn có thể đặt giới hạn cứng hoặc mềm cho bất kỳ người dùng cụ thể nào. Vì vậy, tất cả các quy trình mà người dùng root này sẽ bắt đầu sẽ có 5 là vale ưu tiên mặc định.

Theo trang Wikipedia :

Hiệu quả toán học chính xác của việc thiết lập một giá trị độc đáo cụ thể cho một quy trình phụ thuộc vào chi tiết về cách trình lập lịch biểu được thiết kế trên việc triển khai Unix đó.

Dưới đây là ảnh chụp nhanh cho thấy quy trình trên hoạt động:

Hình ảnh này là ảnh chụp màn hình của tập tin /etc/security/limits.conf

Đây là ảnh chụp nhanh của limits.conftập tin hiển thị một dòng mà tôi đã thêm vào cuối cùng như

root     hard     priority    15

Sau khi thay đổi điều này, tôi bắt đầu một phiên ssh bằng lệnh ssh root@localhost

nhập mô tả hình ảnh ở đây

Ảnh chụp màn hình này hiển thị hai dòng cuối cùng cho thấy giá trị tốt đẹp của hai quy trình cuối cùng -bashsshd: root@pts/3là 15.

Biên tập

Dưới đây là ảnh chụp nhanh cho thấy bạn có thể tăng và giảm độ độc đáo của một quy trình nhập mô tả hình ảnh ở đây

Chỉnh sửa 2:

Dưới đây là snapshort cho thấy ngay cả người dùng bình thường cũng có thể thay đổi giá trị độ đẹp.

nhập mô tả hình ảnh ở đây


Tôi đã nói về sự tốt đẹp , không phải ưu tiên. Và như tôi đã nói ở câu trả lời khác, nó dường như không được chấp nhận. Tôi có phải khởi động lại một số daemon, hoặc một cái gì đó?
bitmask

@bitmask: cái này đang hoạt động trong tôi ... Tôi sẽ thêm ảnh chụp nhanh vào câu trả lời của mình chờ đợi ...
pradeepchhetri

@bitmask: Tôi đã cập nhật câu trả lời với ảnh chụp nhanh .. :)
pradeepchhetri

Có sự khác biệt giữa giá trị niceưu tiên . Tôi hoàn toàn mua rằng bạn có thể thay đổi mức độ ưu tiên cứng , nhưng tôi muốn thay đổi độ mềm mại . Đó là một điều khác biệt.
bitmask

@bitmask: Truy cập trang wiki , A niceness of −20 is the highest priority and 19 or 20 is the lowest priority. Vì vậy, trước tiên bạn phải hiểu rằng sự tử tế và ưu tiên là như nhau..Và tôi muốn làm rõ rằng đây là hard and soft limitsnhững thứ không giống như hard prioritysoft niceness..
pradeepchhetri

1

vẻ như bạn có thể đặt mức độ ưu tiên mặc định cho người dùng limits.conf, với một dòng như:

username    soft  priority  5

Xem man limits.conf .


Âm thanh tuyệt vời. Tôi chỉ cho nó một shot (sử dụng một nhóm đặc biệt mặc dù) @nice soft nice 5nhưng sshing vào máy và thực hiện sleep 1hchương trình là có giá trị nice 0trong htop. Bất kỳ manh mối tại sao các thiết lập đã không được chấp nhận? Tôi đang siết chặt debian.
bitmask

những gì @nicetrong bình luận ở trên..it nên là một trong những người dùng máy ur linux.
pradeepchhetri

@pradeepchhetri: Vui lòng xem bản chỉnh sửa OP của tôi. Đó là một tên nhóm.
bitmask

Tại sao @ trước tên nhóm trong khi đặt một mục trong limits.conftệp?
pradeepchhetri

@pradeepchhetri: Vì trang đàn ông nói vậy?
bitmask
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.