pm2设置开机启动

1、生成开机启动 pm2 服务的配置文件

运行:pm2 startup 命令

pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/node-v14.14.0-linux-x64/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure

ExecStart=/root/node-v14.14.0-linux-x64/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/root/node-v14.14.0-linux-x64/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/root/node-v14.14.0-linux-x64/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
Created symlink from /etc/systemd/system/multi-user.target.wants/pm2-root.service to /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

执行

pm2 save

2、pm2 save, 保存当前 pm2 运行的各个应用保存到 /root/.pm2/dump.pm2下,开机重启时读取该文件中的内容启动相关应用。

[root@xx ~]# pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2

请添加图片描述

3、查看配置是否开启:使用命令systemctl status pm2-root.service

● pm2-root.service - PM2 process manager
   Loaded: loaded (/etc/systemd/system/pm2-root.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://pm2.keymetrics.io/

官方相关文档:http://pm2.keymetrics.io/docs/usage/startup/#generating-a-startup-script

<think>嗯,用户想知道如何通过ADB命令配置应用在Android系统开机时自动启动。我需要先回顾一下相关的知识,然后结合提供的引用内容来整理步骤。 首先,我记得Android应用开机启动通常需要注册BOOT_COMPLETED广播接收器。但用户问的是用ADB命令来实现,这可能涉及到发送广播或者修改系统设置。 看引用[1]提到可以用adb shell am broadcast发送BOOT_COMPLETED广播。这可能是一种方法,但可能只触发一次,而不是永久性的自启动。不过用户可能想知道如何测试自启动功能,这时候发送广播是有用的。 引用[4]提到应用如果安装在外置SD卡可能收不到这个广播,所以需要确保应用安装在内部存储。这一点需要提醒用户注意。 然后,关于永久性配置开机启动,可能需要ADB命令启用应用的广播接收器。通常应用需要声明RECEIVE_BOOT_COMPLETED权限,并且用户可能需要手动启用该接收器。不过默认情况下,Android 10以上可能限制了后台启动,所以可能需要特殊处理。 引用[5]提到了修改系统代码,比如SystemUI的Java文件,但用户可能无法直接通过ADB命令修改系统文件,除非有root权限。所以这可能不适用于普通用户。 另外,引用[2]和[3]涉及网络ADB和查看应用流量,可能和问题关系不大,但需要注意是否需要网络ADB来执行命令。 总结步骤应该是:首先确保应用有正确的权限和安装在内部存储,然后使用ADB发送广播测试,同时指导用户如何启用接收器,可能需要使用pm grant命令赋予权限,或者使用adb shell cmd package命令允许自启动。 可能需要检查Android版本,因为高版本限制更严格。比如在Android 10及以上,可能需要用户手动允许应用在后台活动,或者将应用设为不受电池优化限制。 所以步骤大概是: 1. 在应用的Manifest声明接收BOOT_COMPLETED并请求权限。 2. 安装应用到内部存储。 3. 使用ADB发送广播测试:adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p 包名。 4. 如果系统限制,可能需要使用pm grant赋予权限,或者启用组件。 另外,可能需要用户手动在系统设置中允许应用自启动,不同厂商可能有不同设置,这时候ADB命令可能无法完全配置,需要结合手动步骤。</think>### 如何通过ADB命令配置应用开机启动? #### 1. **前提条件** - 应用需在`AndroidManifest.xml`中声明`BOOT_COMPLETED`广播接收器并请求权限: ```xml <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> ``` - **应用必须安装在内部存储**,外置SD卡的应用无法接收此广播[^4]。 --- #### 2. **通过ADB发送开机广播(临时测试)** - 手动触发开机广播以测试自启动功能: ```bash adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p your.package.name ``` - `your.package.name`替换为应用包名。 - 此命令模拟系统广播,但仅生效一次[^1]。 --- #### 3. **启用广播接收器(需系统授权)** - 若系统默认禁用广播接收器(如某些厂商ROM),需通过ADB启用组件: ```bash adb shell pm enable your.package.name/.BootReceiver ``` - 或授予自启动权限(部分系统要求): ```bash adb shell pm grant your.package.name android.permission.RECEIVE_BOOT_COMPLETED ``` --- #### 4. **厂商限制与系统版本适配** - **Android 10+**:后台启动限制更严格,需用户手动在系统设置中允许“自启动”或“后台活动”。 - **厂商定制系统**(如小米、华为):可能需要额外在“电池优化”或“权限管理”中配置,ADB无法完全绕过。 --- #### 5. **其他注意事项** - 若需网络ADB支持,可设置ADB TCP端口并重启: ```bash adb shell setprop service.adb.tcp.port 5555 adb reboot ``` 此配置需系统支持(如引用[^2]中修改`build.prop`的方法)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值