Saya ingin memulai proses dengan nilai bagus -20. Ini mengharuskan saya untuk menggunakan perintah seperti - sudo nice -n -20 matlab
. Namun, ini juga memulai matlab sebagai root. Apakah ada cara untuk memiliki matlab sebagai non-root?
Pendekatan saya saat ini adalah - sudo nice -n -20 sudo -u myusername matlab
- yang bagi saya terlihat seperti retasan. Apakah ada pendekatan langsung untuk melakukan ini?
sudo
.root
tidak diperlukan untuk memperbaiki proses Anda sendiri.nice -n -20 matlab
dan ini adalah output yang bagus: tidak dapat mengatur kebaikan: Izin ditolak. Matlab dimulai dan nilai yang bagus adalah 0.system('sudo renice ...')
di MATLAB, tetapi matlab memulai 2 proses - MATLAB dan matlab_helper. Saya mungkin harus melakukannya pada keduanya. selain itu saya juga ingin semua proses MATLAB saya menjadi prioritas tinggi - ketika saya mulaimatlabpool local
untuk pemrosesan paralel. @ HaukeLaging - Saya mulai berpikir Anda benar.Jawaban:
Saya akan memulainya secara normal dan menggunakan "renice" setelah itu ...
Namun saya dapat melakukan peretasan cepat bersama dengan "su" yang berfungsi:
(Jika Anda tidak harus memberikan kata sandi pada sudo - mungkin karena Anda baru saja memberikannya - Anda dapat menambahkan "&" untuk meletakkan semuanya di latar belakang.)
Karena Anda sudah menjadi root dengan perintah sudo, su tidak akan meminta kata sandi. Saya dapat memulai program-X dari terminal-emulator di bawah X. Jika Anda ingin menjalankan program-X sebagai pengguna lain daripada pengguna yang memiliki sesi-X, Anda mungkin harus secara eksplisit memberi tahu X untuk mengizinkannya. (terbuka untuk klien-X dari pengguna itu).
sumber
sudo nice -n 19 su -c $(echo "test")
tidak memberikan output.sudo nice -n 19 su -c "echo 'test'"' When you want to run a function in
su -c do`, lihat stackoverflow.com/a/3727572/2522849Selangkah lebih maju @Jordan, Ini solusi elegan melawan
sudo nice -n -xx su <username> -c matlab
hackBuat mat -data meta-data dir (PERPARE)
sudo mkdir /var/lib/matlab
Tambahkan pengguna yang ditentukan untuk meluncurkan matlab & kesempurnaan kanan
Tetapkan kata sandi pengguna (sid)
sudo passwd sid
Tambahkan berikut ini ke /etc/security/limits.conf
sid - priority -10
Setup & salin ssh-key untuk mengotomatiskan login (OPTIONAL)
Shell login Ajust sid
sudo usermod -s /usr/local/bin/wmatlab sid
mulai matlab menggunakan ssh dengan Xforward
ssh -X sid@localhost
sumber
Saya menemukan ini bisa dilakukan dengan memodifikasi file
/etc/security/limits.conf
(setidaknya pada beberapa distro linux). Dalam kasus saya, saya hanya menambahkan#<domain> <type> <item> <value> my_user - nice -20
maka Anda bisa mengeksekusi
nice -n -20 matlab
sumber
Seperti @jordanm berkata drop sudo. Anda dapat memperbaiki proses Anda sendiri untuk memberi mereka prioritas yang lebih rendah:
Tidak ada
sudo
.sumber
system('ps a -o pid -o comm -o nice')
mengerti13580 MATLAB 19
- MATLAB berjalan dengan prioritas terendah, bukan tertinggi. Pertanyaan saya adalah bagaimana cara meningkatkan prioritas dan tidak menguranginya.sudo
, ini adalah perintah yang benar -nice -n -20 matlab
dan ini adalah outputnice: cannot set niceness: Permission denied
. Matlab dimulai dan nilai yang bagus adalah 0.pam memungkinkan Anda untuk menetapkan batas pada bagus per grup file konfigurasinya:
Dan pastikan grup proses berjalan di grnice.
sumber
Tambahkan pengguna ke sudoers (sebenarnya, file baru di /etc/sudoers.d, tetapi dengan premis yang sama):
Kemudian, sebagai "pengguna yang baik":
dan itu melakukan apa yang saya butuhkan (yaitu, pengguna saya sekarang dapat meningkatkan prioritas {command ...}). Ini mendukung banyak pengguna, dll. - gunakan
man 5 sudoers
untuk detail.sumber
Opsi lain yang mungkin (sederhana, tetapi kurang aman) adalah mengaktifkan setuid / setgid untuk
nice
dieksekusi.setuid menugaskan pengguna yang dapat mengeksekusi file UID efektif dari pemilik file (dalam hal ini
root
) ketika mengeksekusi file, dengan demikian sama dengan menjalankan sebagai pengguna. setguid melakukan hal yang sama untuk GID yang efektif.Atau Anda dapat melakukannya dengan lebih aman:
Hati-hati Anda perlu login kembali akun Anda agar grup baru berlaku.
sumber