欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

macos 通过 终端 查看 启动项 文心一言 chatgpt 有大用

禁用或删除启动项 见   /node-admin/21200

在macOS中,通过终端(Terminal)查看启动项是一种较为高级且直接的方法,特别是当你需要深入了解系统底层的自启动服务时。启动项在macOS中通常以.plist文件的形式存在,这些文件位于特定的系统文件夹中。以下是通过终端查看启动项的具体步骤:

# launchctl list  #查看启动项列表

查找启动项

  1. 打开终端

  • 在Finder中,前往/Applications/Utilities文件夹,然后双击打开Terminal应用程序。

  • 查看启动项文件夹

    • /Library/LaunchDaemons:系统启动时运行,用户不登录也会运行。

    • /Library/LaunchAgents:用户登录后运行,但会由系统为每个用户加载。

    • ~/Library/LaunchAgents~代表用户的主目录):用户自定义的启动项,仅针对当前用户。

    • /System/Library/LaunchDaemons/System/Library/LaunchAgents:系统自带的启动项,通常不建议修改。

    • macOS中的启动项主要存储在几个不同的LaunchAgentsLaunchDaemons文件夹中。这些文件夹的位置如下:

  • 列出文件夹内容

    • 使用ls命令列出上述文件夹中的.plist文件。例如,要查看/Library/LaunchAgents文件夹中的文件,可以输入以下命令:

      bash复制代码

      ls /Library/LaunchAgents
    • 这将列出该文件夹中所有的.plist文件,每个文件都代表一个启动项。

  • 查看.plist文件内容

    • 要查看特定.plist文件的内容,可以使用catlessmore等命令。例如,要查看名为com.example.service.plist的文件内容,可以输入:

      bash复制代码

      cat /Library/LaunchAgents/com.example.service.plist
    • 或者使用plutil命令以更友好的方式打印.plist文件内容:

      bash复制代码

      plutil -p /Library/LaunchAgents/com.example.service.plist

    注意事项

    • 权限问题:访问某些系统文件夹(如/System/Library/)时可能需要管理员权限。如果遇到权限问题,可以尝试在命令前加上sudo来获取超级用户权限。

    • 安全性:修改或删除系统文件夹中的文件可能会影响系统的稳定性和安全性。在进行任何更改之前,请确保您完全了解所做更改的后果,并考虑进行备份。

    • 透明度:与通过系统设置管理登录项相比,通过终端查看启动项提供了更高的透明度和灵活性,但也需要更高的技术知识和经验。

    总结

    通过终端查看macOS的启动项是了解系统自启动服务的一种有效方法。通过访问特定的系统文件夹并使用lscatplutil等命令,您可以列出和查看这些启动项的配置文件(.plist文件)。然而,请注意在进行任何更改之前要谨慎行事,并确保您了解所做更改的潜在影响。



    macos  /Library/LaunchDaemons 与  /Library/LaunchAgents 区别

    在macOS系统中,/Library/LaunchDaemons 和 /Library/LaunchAgents 是两个用于存放系统级启动项(守护进程)的目录,它们之间存在一些关键的区别。以下是这两个目录的主要区别:

    目录功能

    • /Library/LaunchDaemons

      • 这个目录用于存放系统启动时即运行的守护进程(daemons),无论用户是否登录。

      • 这些守护进程通常以root用户身份运行,因为它们需要在系统级别上执行任务,如网络服务、系统监控等。

      • Apple和第三方系统级软件可能会将它们的守护进程plist文件放在这里。

    • /Library/LaunchAgents

      • 这个目录用于存放用户登录后启动的代理(agents)和守护进程(虽然这里的守护进程在用户登录后启动,但它们仍被视为“代理”的一种)。

      • 这些进程通常以当前登录用户的身份运行,执行与用户会话相关的任务。

      • 用户级软件和某些系统级软件可能会将它们的启动项plist文件放在这里,特别是那些需要用户交互或依赖于用户会话的软件。

    权限和用户

    • /Library/LaunchDaemons 中的进程以root用户身份运行,具有更高的权限。

    • /Library/LaunchAgents 中的进程以当前登录用户的身份运行,权限相对较低。

    启动时机

    • /Library/LaunchDaemons 中的进程在系统启动时或用户登录之前就开始运行。

    • /Library/LaunchAgents 中的进程在用户登录后启动。

    管理和配置

    • 无论是 /Library/LaunchDaemons 还是 /Library/LaunchAgents,它们都使用plist(属性列表)文件来配置守护进程和代理的启动参数。

    • plist文件中包含了控制守护进程或代理行为的关键属性,如KeepAliveRunAtLoadSuccessfulExit等。

    • 使用launchctl命令可以管理(加载、卸载、启动、停止等)这些plist文件对应的守护进程和代理。

    总结



    /Library/LaunchDaemons/Library/LaunchAgents
    功能系统启动时运行的守护进程用户登录后运行的代理和守护进程
    权限和用户以root用户身份运行以当前登录用户身份运行
    启动时机系统启动时或用户登录前用户登录后
    管理和配置使用plist文件和launchctl命令使用plist文件和launchctl命令


    了解这些区别有助于在macOS系统上更有效地管理和配置启动项,确保系统的稳定性和性能。



    launchctl list  是查看 /Library/LaunchDaemons 下的 还是 /Library/LaunchAgents 下的启动进程

    launchctl list 命令本身并不直接区分是查看 /Library/LaunchDaemons 还是 /Library/LaunchAgents 目录下的启动进程。实际上,launchctl list 命令会列出当前系统上所有由 launchd 管理的作业(包括守护进程、代理、定时任务等),这些作业可能来自 /Library/LaunchDaemons/Library/LaunchAgents~/Library/LaunchAgents(用户级别的代理)以及通过其他方式(如通过编程方式注册)添加的作业。

    然而,你可以使用 launchctl list 命令的不同选项来过滤或指定你想要查看的作业类型。但是,请注意,直接通过选项来区分 /Library/LaunchDaemons 和 /Library/LaunchAgents 的作业并不是 launchctl list 命令直接提供的。不过,你可以通过其他方式来间接识别这些作业的来源:

    • 查看作业的标识符(Label):通常,/Library/LaunchDaemons 下的作业标识符会以系统级域的方式命名(如 com.apple.something),而 /Library/LaunchAgents 下的作业(特别是第三方软件添加的)可能会包含更具体的软件名称或开发者信息。但这并不是绝对的,因为标识符的命名规则可以由开发者自定义。

    • 使用 launchctl list 的 -r(或 --regex)选项配合正则表达式来过滤特定的作业。但是,这需要你知道作业标识符的一部分或全部,以便构建有效的正则表达式。

    • 通过查看 /Library/LaunchDaemons 和 /Library/LaunchAgents 目录下的 plist 文件,你可以了解哪些守护进程和代理被配置为在系统上运行。然后,你可以使用 launchctl list 命令来验证这些作业是否正在运行。

    如果你想要专门查看 /Library/LaunchDaemons 或 /Library/LaunchAgents 目录下的所有 plist 文件(而不仅仅是当前运行的作业),你可以使用 ls 命令或 find 命令来列出这些目录下的文件。例如:

    bash复制代码

    ls /Library/LaunchDaemons

    ls /Library/LaunchAgents

    或者,如果你想要递归地查找并列出所有相关的 plist 文件(包括可能位于子目录中的文件),你可以使用 find 命令:

    bash复制代码

    find /Library/LaunchDaemons -type f -name "*.plist"  

    find /Library/LaunchAgents -type f -name "*.plist"

    但是,请记住,这些命令只是列出了 plist 文件,而不是 launchd 当前正在管理的作业状态。要获取作业状态,你仍然需要使用 launchctl list 命令。



    普通分类: