Bagaimana saya bisa membuat semua proses saya mulai dengan kebaikan 5

8

Saya tahu bahwa nilai kebaikan diwarisi dari nilai kebaikan dari proses induk, tetapi bisakah saya secara global mengubah nilai kebaikan standar untuk pengguna tertentu (saya sendiri).

Dalam hal ini saya memiliki server kenyamanan kecil dalam pikiran, yang diakses secara eksklusif melalui ssh. Jadi, saya pikir saya bisa mengubah shell default saya dari /bin/bashke /etc/bash5sementara /etc/bash5adalah script ini:

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

#file privileges: root:root 755

Ini mengejutkan saya sebagai hack and error yang rentan. Pasti ada cara yang lebih baik.

Saya sebagian besar tertarik pada solusi umum, yang juga berlaku untuk sistem desktop / laptop.


Sunting: Saya mencoba limits.confperubahan yang disarankan , tetapi tidak berfungsi seperti yang diharapkan:

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

Lalu, dari mesin klien saya, kataku

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

Sekarang, sleepproses memiliki nilai kebaikan awal0 , tetapi jika saya mengubah nilainya F8menjadi 19 dan kemudian mencoba menguranginya lagi dengan F7 berhenti di5 .

Edit2: Solusi

Alih-alih menggunakan niceitem dalam limits.conf, Anda sebenarnya harus menggunakan prioritymeskipun itu kontra-intuitif.

@nice soft priority 5
bitmask
sumber
Mungkin memasukkan renice -n 5Anda ~/.profile?
jw013
@ jw013: Itu ide yang lebih baik daripada bash5pendekatan saya , saya berikan ini. Tapi itu masih rusak jika saya katakan ssh myserver -- somecommandbukan?
bitmask
@bitmask. Saya tidak dapat mereproduksi hasil Anda limits.conf. Untuk apa output Anda ps -o pid,nice,cmd?
Donasi berhasil pada
1
Silakan posting solusi untuk masalah Anda sendiri sebagai jawaban , daripada mengedit pertanyaan Anda. Terima kasih! (Tidak apa-apa untuk memberikan jawaban Anda sendiri untuk pertanyaan Anda sendiri.)
mattdm
Pada catatan lain: ini bukan yang Anda minta, tetapi Anda mungkin menemukan bahwa cgroup memberikan cara yang lebih efektif untuk melakukan apa (prioritas berkurang untuk pengguna tertentu) yang Anda inginkan daripada nice.
mattdm

Jawaban:

7

Anda dapat mengatur prioritas untuk pengguna tertentu dalam /etc/security/limits.conffile.

root       hard/soft     priority    10

Dengan cara ini Anda dapat menetapkan batas keras atau lunak untuk pengguna tertentu. Jadi semua proses yang akan dimulai oleh pengguna root ini memiliki 5 sebagai prioritas default vale.

Menurut halaman Wikipedia :

Efek matematika yang tepat dari pengaturan nilai kebaikan tertentu untuk suatu proses tergantung pada perincian tentang bagaimana penjadwal dirancang pada implementasi Unix tersebut.

Ini adalah snapshot yang menunjukkan prosedur di atas berfungsi:

Gambar ini adalah tangkapan layar dari file /etc/security/limits.conf

Ini adalah snapshot dari limits.conffile yang menunjukkan baris yang saya tambahkan pada akhirnya suka

root     hard     priority    15

Setelah mengubah ini, saya memulai satu sesi ssh menggunakan perintah ssh root@localhost

masukkan deskripsi gambar di sini

Tangkapan layar ini menunjukkan dua baris terakhir yang menunjukkan nilai bagus dari dua proses terakhir -bashdan sshd: root@pts/3menjadi 15.

Edit

Ini adalah snapshot yang menunjukkan bahwa Anda dapat menambah dan mengurangi kebaikan suatu proses masukkan deskripsi gambar di sini

Edit 2:

Ini adalah snapshort yang menunjukkan bahwa pengguna normal pun dapat mengubah nilai kebaikan.

masukkan deskripsi gambar di sini

pradeepchhetri
sumber
Saya berbicara tentang kebaikan , bukan prioritas. Dan seperti yang saya katakan pada jawaban yang lain, sepertinya tidak diterima. Apakah saya harus memulai ulang daemon, atau sesuatu?
bitmask
@ bitmask: yang ini bekerja di milikku ... Saya akan menambahkan snapshot dalam jawaban saya tunggu ...
pradeepchhetri
@bitmask: Saya telah memperbarui jawabannya dengan foto-foto itu .. :)
pradeepchhetri
Ada perbedaan antara kebaikan dan prioritas . Saya benar-benar membeli bahwa Anda dapat mengubah prioritas sulit , tetapi saya ingin mengubah kelembutan lembut . Itu hal yang berbeda.
bitmask
@ bitmask: Accirind ke halaman wiki A niceness of −20 is the highest priority and 19 or 20 is the lowest priority,. Jadi, pertama-tama Anda harus memahami bahwa kebaikan dan prioritas adalah sama .. Dan saya ingin menjelaskan bahwa ini adalah hard and soft limitstetapi tidak sepertihard priority dan soft niceness..
pradeepchhetri
1

Ini terlihat seperti Anda dapat mengatur prioritas default untuk pengguna di limits.conf, dengan baris seperti:

username    soft  priority  5

Lihat man limit.conf .

donasi berhasil
sumber
Kedengarannya bagus. Aku hanya memberikannya tembakan (menggunakan kelompok khusus meskipun) @nice soft nice 5tapi sshing ke dalam mesin dan melaksanakan sleep 1hacara sebagai memiliki kebaikan 0di htop. Adakah petunjuk mengapa pengaturan tidak diterima? Saya sedang memeras debian.
bitmask
apa yang ada @nicedi komentar di atas..harus menjadi salah satu pengguna mesin linux Anda.
pradeepchhetri
@pradeepchhetri: Tolong lihat hasil edit OP saya. Itu nama grup.
bitmask
mengapa @ di depan nama grup saat memasukkan entri ke dalam limits.conffile?
pradeepchhetri
@pradeepchhetri: Karena halaman manual mengatakannya?
bitmask