Ubuntu/Debian

rc.local 中的命令会在系统启动完成之后运行(SysVinit)。
1 . 编辑:

/etc/rc.local

添加想要被执行的命令即可(默认是以root用户执行)。

注: 有些很特殊的情况 /etc/rc.local 不会被执行,可以 编辑 /etc/init.d/rc.local see link: http://www.linuxidc.com/Linux/2016-12/138665.htm

2 . 以期望的用户执行命令:

su -c 'ls -l "myfile.txt"' guowei &

解释: 其中需要被执行的命令是 ls -l "myfile.txt", 期望的用户的 guowei& 表示在后台运行。

3 . 开机以 screen 运行程序脚本,并添加环境变量(no-login):

#!/bin/bash

# 环境变量要在 su 之前设置好,然后 sudo -E 保持环境变量
# 如果直接是root用户执行该脚本,则只需要 su -p 或者 su -m 保持环境变量即可
export GUOWEI_DIR=/home/guowei
export PATH=/opt/bin:$PATH
source /home/guowei/.bashrc

if [ -e /opt/my_app ]; then
#   sudo -E su -p -l guowei << BASH    # 如果要以 guowei 用户执行那些程序的话,去掉注释即可。 su - 表示切换的环境变量,sudo 需要添加 -E 选项。
    su -p guowei << BASH  # 以用户 guowei 执行以下命令,注意不要加 sudo, 否则就需要以 sudo -E 执行。
    cd /home/guowei
    screen -d -m /opt/my_app
#	BASH
fi

# 或者将 export 写在 -c 内部, 加上 -c 和 单引号:
su guowei -c 'export A=/opt/bla; blabla~; /opt/my_app'  // 注意:双引号跟单引号有区别

然后 ssh 登陆后, 切换到对应用户screen -ls 可以看到在后台运行的程序。


OpenSUSE:

OpenSUSE启动程序的设置比较特殊(没有 /ect/rc.local 文件),主要有这三个文件(SysVinit):

1./etc/init.d/after.local

此文件默认不存在,需要用户手动创建。它是在系统已完成运行级的启动后执行的脚本。与其它系统的 /etc/rc.local 相似。

2./etc/init.d/boot.local

此文件在系统启动后,进入运行级前就执行的用户脚本。注意这一文件执行时网络等设备都尚未就绪(没有网络连接),使用时应小心。

3./etc/init.d/before.local

该文件在也是在rc启动脚本之前执行,但是会在boot.local之后执行。

因此,对于大多数启动程序来说,将其加到 /etc/init.d/after.local 中较为合适。

如果系统是使用 Systemd, 则对应的文件为: /etc/init.d/after-local

To enable /etc/init.d/after-local:
systemctl enable after-local.service
To check status of /etc/init.d/after-local:
systemctl status after-local.service

总的来说,对于使用SysVinit系统来说,如果是一般的用户程序,只需要新建文件:

vi /etc/init.d/after.local

添加自定义的启动命令即可:

#!/bin/sh

/usr/local/bin/redis-server /etc/redis/6379.conf

ref link:

CentOS:

1、在 /etc/init.d/ 目录下新建一个文件:autostart.sh

#!/bin/sh
#chkconfig: 2345 80 80
#description: auto start my app

sh xxx &  # 期望被执行的命令

2、cd 到 /etc/init.d目录下,输入命令:

chkconfig --add autostart.sh
chkconfig autostart.sh on
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐