当前位置: > shell编程 >

linux下开机以某一个用户执行脚本

时间:2017-12-21 01:37来源:blog.csdn.net 作者:风竹夜 举报 点击:

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 可以看到在后台运行的程序。

------分隔线----------------------------
发表评论
为了和诣的生活,我关闭了评论页面,请大家到QQ群里交流吧:348944156,也欢迎关注本站微信公众号:centoscn
栏目分类