唐山哪里有建设网站,爱趣网,线上转线下营销推广方式,注册网站免费注册邮箱文章目录 1 访问和修改环境变量1.1 访问环境变量1.2 修改环境变量 2 进程的用户和组2.1 进程的ID2.2 进程的用户2.3 进程组 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面。 这里整理了环境变量、进程的用户和用户组相关的控制方法。
参考… 文章目录 1 访问和修改环境变量1.1 访问环境变量1.2 修改环境变量 2 进程的用户和组2.1 进程的ID2.2 进程的用户2.3 进程组 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面。 这里整理了环境变量、进程的用户和用户组相关的控制方法。
参考os模块官方文档 1 访问和修改环境变量
1.1 访问环境变量 os.environ 一系列的表示环境变量的键值对。 os.environ的值是在初次导入os模块时载入的。后续再修改环境变量其值不会发生变化。 os.environ可以用于修改环境变量。其键值对被修改时会自动调用os.putenv()。 os.environ中的元素被删除时会自动调用os.unsetenv()相应的环境变量也会被删除。 os.environ
environ({键: 值, ...})os.environb 表示环境变量的键值对键和值都是bytes对象。 os.environb和os.environ是同步的一个被修改另一个也会跟着变化。 os.getenv(key, defaultNone) 根据字符串键从os.environ获取环境变量。 os.getenvb(key, defaultNone) 根据字节串键从os.environb获取环境变量。 os.get_exec_path(envNone) 返回用于搜索可执行文件的目录列表。 在shell中使用python命令时会在这些列表中找python的可执行文件。 参数env为可搜索PATH的环境变量字典。默认会使用os.environ的值。 os.get_exec_path()
[/usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin]os.environ[PATH]
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binos.supports_bytes_environ 操作系统的原生环境类型是字节型则为True否则为False。 os.supports_bytes_environ的值为True时os.environb和os.getenvb才可用。 # windows平台os.supports_bytes_environ
Falseos.getenvb
Traceback (most recent call last):File stdin, line 1, in module
AttributeError: module os has no attribute getenvb. Did you mean: getenv?1.2 修改环境变量
os.putenv(key, value) 设置环境变量key的值为value。os.unsetenv(key) 删除名为key的环境变量。
os.putenv和os.unsetenv对环境变量进行设置和删除会影响后续由os.system()、os.fork()os.popen()os.execv()发起的子进程。 这两个方法都不会影响os.environ的值。所以最好通过给os.environ赋值或删除其中元素来修改环境变量。赋值时会自动调用os.putenv()删除元素时会调用os.unsetenv()。 2 进程的用户和组
下述的方法大多仅在Unix系统可用。 os.getlogin()、os.getpid()、os.getppid()三个方法在Windows平台也可以用。
2.1 进程的ID
os.getpid() 返回当前进程IDos.getppid() 返回父进程ID。os.getsid(pid) 调用系统调用getsid返回进程的会话ID。pid为0时返回当前进程的会话IDos.setsid() 调用系统调用setsid创建会话并设置进程组ID。成功后返回新会话的ID。 os.getpid()
31044os.getppid()
30996os.getsid(0)
309962.2 进程的用户
os.getuid() 返回当前进程的真实用户ID。os.geteuid() 返回当前进程的有效用户ID。os.getresuid() 返回由(ruid, euid, suid)组成的元组分别表示当前进程的真实用户ID、有效用户ID和暂存用户ID。os.getlogin() 返回通过控制终端进行登录的用户名。 os.getuid()
0os.geteuid()
0os.getresuid()
(0, 0, 0)os.getlogin()
rootos.setuid(uid) 设置当前进程的真实用户ID。os.seteuid(euid) 设置当前进程的有效用户ID。os.setreuid(ruid, euid) 设置当前进程的真实和有效用户ID。os.setresuid(ruid, euid, suid) 设置当前进程的真实、有效和暂存用户ID。
2.3 进程组
os.getgid() 返回当前进程的实际组ID。os.getegid() 返回当前进程的有效组ID。os.getresgid() 返回由(rgid, egid, ugid)组成的元组分别表示当前进程的真实组ID、有效组ID和暂存组ID。os.getpgrp() 返回当前进程组的ID。os.getpgid(pid) 根据进程id返回进程的组ID列表。pid为0时返回当前进程的进程组ID列表。os.getgroups() 返回当前进程关联的附加组ID列表。os.getgrouplist(user, group) 返回user所属的组ID列表。如果group不在列表内会被加入列表。 os.getgid()
0os.getegid()
0os.getresgid()
(0, 0, 0)os.getgrouplist(root, 0)
[0]os.getgroups()
[0]os.getpgid(os.getpid())
31044os.getpgrp()
31044os.setgid(gid) 设置当前进程的组ID。os.setegid(egid) 设置当前进程的有效组ID。os.setregid(rgid, egid) 设置当前进程的真实和有效组ID。os.setresgid(rgid, egid, sgid) 设置当前进程的真实、有效和暂存组ID。os.setgroups(groups) 把group参数值设置为与当前进程关联的附加组ID列表group参数为序列每个元素为每个组的ID数值。仅超级用户可执行该操作。os.setpgid(pid, pgrp) 系统调用setpgid()把pid对应的进程的组ID设置为pgrp。os.setpgrp() 系统调用setpgrp()或setpgrp(0, 0)。os.initgroups(username, gid) 调用系统initgroups()使用指定用户所在的所有值来初始化组访问列表包括指定的组ID。 以上是os模块的访问和修改环境变量、进程用户、进程组的方法。