开机自启动
开机自启动
自启动程序是指在系统启动时自动运行的程序。这些程序可能会影响系统的启动速度和性能,因此了解如何获取和管理这些程序是非常重要的。本文将介绍一种使用 Python 实现的方法,通过调用系统命令和处理 CSV 文件来获取自启动程序的信息。
windows代码实现
确定 autorunsc 程序的名称:
1 | autorunsc_name = "autorunsc64.exe" if platform.architecture()[0] == "64bit" else "autorunsc32.exe" |
这行代码根据当前系统的架构(64 位或 32 位)来确定 autorunsc 程序的文件名。
终止正在运行的 autorunsc 进程:
1 | for process in psutil.process_iter(): |
这段代码遍历所有正在运行的进程,尝试终止名为 autorunsc 的进程,以确保没有其他实例在运行。
执行 autorunsc 命令并保存结果到临时文件:
1 | autoruns_path = os.path.join(setting.PROJ_PATH, autorunsc_name) |
这行代码执行 autorunsc 命令,并将结果保存到一个临时的 CSV 文件中。
处理 CSV 文件中的数据:
1 | with open(result_temp_path, "rt", encoding="UTF-16") as f: |
这段代码打开临时 CSV 文件,逐行读取数据,并使用 get_line 函数处理每一行数据。处理后的数据被转换为 JSON 格式,并写入到输出文件中。
删除临时文件:
1 | os.remove(result_temp_path) |
最后,这行代码删除临时 CSV 文件,以保持文件系统的整洁。
这个方法通过调用 autorunsc 命令获取 Windows 自启动程序的信息,并将这些信息处理后写入到指定的文件中。
Linux代码实现
下面是对代码的详细解释:
执行 systemctl list-unit-files 命令并获取结果:
1 | res_list = exe_cmd("systemctl list-unit-files").split("\n") |
这行代码执行 systemctl list-unit-files 命令,并将结果按行分割成列表。
遍历结果列表,处理每一行数据:
1 | for line in res_list[1:-2:]: |
这段代码遍历结果列表,跳过第一行和最后两行,因为它们不包含服务信息。对于每一行数据,它尝试将其分割成两部分或三部分(取决于是否有额外的信息),然后将服务名和状态保存到 source_data 字典中。接着,它调用 get_line 函数处理 source_data,并将处理后的数据转换为 JSON 格式,最后写入到输出文件中。如果在处理过程中遇到异常,它会记录错误信息。










