linux 开机自启动脚本 (Ubuntu: 以某一个用户执行, OpenSUSE, CentOS)

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
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值