Using the prctl Command
Use the prctl command to make runtime interrogations of and modifications to the
resource controls associated with an active process, task, or project on the system.
See the prctl(1) man page for more information.
How to Use the prctl Command to Display Default Resource Control Values
This procedure must be used on a system on which no resource
controls have been set or changed. There can be only non-default entries in
the /etc/system file or in the project database.
- Use the prctl command on any process, such as the current shell that
is running.
# prctl $$
process: 100337: -sh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-port-events
privileged 65.5K - deny -
system 2.15G max deny -
process.crypto-buffer-limit
system 16.0EB max deny -
process.max-crypto-sessions
system 18.4E max deny -
process.add-crypto-sessions
privileged 100 - deny -
system 18.4E max deny -
process.min-crypto-sessions
privileged 20 - deny -
system 18.4E max deny -
process.max-msg-messages
privileged 8.19K - deny -
system 4.29G max deny -
process.max-msg-qbytes
privileged 64.0KB - deny -
system 16.0EB max deny -
process.max-sem-ops
privileged 512 - deny -
system 2.15G max deny -
process.max-sem-nsems
privileged 512 - deny -
system 32.8K max deny -
process.max-address-space
privileged 16.0EB max deny -
system 16.0EB max deny -
process.max-file-descriptor
basic 256 - deny 100337
privileged 65.5K - deny -
system 2.15G max deny -
process.max-core-size
privileged 8.00EB max deny -
system 8.00EB max deny -
process.max-stack-size
basic 8.00MB - deny 100337
privileged 8.00EB - deny -
system 8.00EB max deny -
process.max-data-size
privileged 16.0EB max deny -
system 16.0EB max deny -
process.max-file-size
privileged 8.00EB max deny,signal=XFSZ -
system 8.00EB max deny -
process.max-cpu-time
privileged 18.4Es inf signal=XCPU -
system 18.4Es inf none -
task.max-cpu-time
system 18.4Es inf none -
task.max-lwps
system 2.15G max deny -
project.max-contracts
privileged 10.0K - deny -
system 2.15G max deny -
project.max-device-locked-memory
privileged 499MB - deny -
system 16.0EB max deny -
project.max-port-ids
privileged 8.19K - deny -
system 65.5K max deny -
project.max-shm-memory
privileged 1.95GB - deny -
system 16.0EB max deny -
project.max-shm-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-msg-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-sem-ids
privileged 128 - deny -
system 16.8M max deny -
project.max-tasks
system 2.15G max deny -
project.max-lwps
system 2.15G max deny -
project.cpu-shares
privileged 1 - none -
system 65.5K max none -
zone.max-lwps
system 2.15G max deny -
zone.cpu-shares
privileged 1 - none -
system 65.5K max none -
How to Use the prctl Command to Display Information for a Given Resource Control
How to Use prctl to Temporarily Change a Value
This example procedure uses the prctl command to temporarily add a new privileged
value to deny the use of more than three LWPs per project
for the x-files project. The result is comparable to the result in How to Set the Maximum Number of LWPs for Each Task in a Project.
- Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
- Use newtask to join the x-files project.
# newtask -p x-files
- Use the id command with the -p option to verify that the
correct project has been joined.
# id -p
uid=0(root) gid=1(other) projid=101(x-files)
- Add a new privileged value for project.max-lwps that limits the number
of LWPs to three.
# prctl -n project.max-lwps -t privileged -v 3 -e deny -i project x-files
- Verify the result.
# prctl -n project.max-lwps -i project x-files
process: 111108: csh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-lwps
privileged 3 - deny -
system 2.15G max deny -
How to Use prctl to Lower a Resource Control Value
- Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
- Use the prctl command with the -r option to change the lowest value
of the process.max-file-descriptor resource control.
# prctl -n process.max-file-descriptor -r -v 128 $$
How to Use prctl to Display, Replace, and Verify the Value of a Control on a Project
- Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
- Display the value of project.cpu-shares in the project group.staff.
# prctl -n project.cpu-shares -i project group.staff
project: 2: group.staff
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.cpu-shares
privileged 1 - none -
system 65.5K max none
- Replace the current project.cpu-shares value 1 with the value 10.
# prctl -n project.cpu-shares -v 10 -r -i project group.staff
- Display the value of project.cpu-shares in the project group.staff.
# prctl -n project.cpu-shares -i project group.staff
project: 2: group.staff
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.cpu-shares
privileged 10 - none -
system 65.5K max none