Alcune applicazioni o processi specifici potrebbero richiedere valori di risorse più elevati rispetto ai valori assegnati da systemd predefiniti. È possibile ignorare i limiti di risorse predefiniti assegnati da systemd.
Fondamentalmente systemd imposta i limiti predefiniti per qualsiasi processo all'avvio. Ad esempio:
# cat /proc/1696/limits | grep "Max locked memory" Max locked memory 65536 65536 bytes
Dall'esempio sopra, la Memoria massima bloccata è 64 KB per il PID 1696 e per alcuni processi o applicazioni questo potrebbe non essere sufficiente. Ci sono un paio di modi per cambiarlo.
Metodo 1 – Cambia a livello globale
Modifica il valore predefinito a livello globale, ciò avrà effetto per tutti i processi. Modifica il file /etc/systemd/system.conf e modifica il valore lì.
1. Se si seleziona, per impostazione predefinita questo valore verrà commentato e quindi sarà attivo il valore predefinito 64K.
# cat /etc/systemd/system.conf | grep DefaultLimitMEMLOCK #DefaultLimitMEMLOCK=
2. Per modificare questo, modificare il file e decommentare la riga della risorsa desiderata e aggiungere il valore desiderato. Ad esempio.
# vi /etc/systemd/system.conf DefaultLimitMEMLOCK=128000
Ciò cambierà la memoria bloccata massima per il processo "tutto" a 128 K all'avvio.
Metodo 2:modifica per servizio o processo specifico
Se il requisito è modificare il limite di risorse per qualsiasi processo o applicazione specifico, il metodo seguente sarà di aiuto.
1. Per modificare il valore della risorsa per qualsiasi processo/servizio specifico.
Questo può essere fatto modificando il file dell'unità di servizio e aggiungendo i dettagli del limite lì con la sezione del servizio. Esempio come di seguito per il servizio "test"
# vi test.service [Unit] Description=TEST SERVICE Wants=network.target network-online.target autofs.service After=network.target network-online.target autofs.service [Service] Type=simple User=farmer ExecStart=/path/to/service/executable <> LimitMEMLOCK=128000 PIDFile=/var/run/test.pid [Install] WantedBy=multi-user.target
Con il file dell'unità di servizio sopra, la nuova riga "LimitMEMLOCK=128000" assegnerà 128K Max di memoria bloccata per il processo specifico all'avvio. Tutti gli altri processi avranno il valore predefinito come da systemd.