Ubuntu 设置程序开机启动(以指定用户身份)
一、方法
在/etc/rc.local写程序的启动命令(系统执行内核过程中会启动init进程,该进程把当前runlevel所对应的的所有service 都启动后,才会执行rc.local里的命令),程序默认以root身份启动;也可以通过 sudo -u user1 命令 指定以user1身份启动。
二、示例:以tomcat为例
由于tomcat运行需要JAVA_HOME,而在init进程运行时还未加载用户的profile,所以需要在命令前指定JAVA_HOME。
1、默认以当前用户即root身份启动
在/etc/rc.local写如下命令
export JAVA_HOME=/usr/share/jvm/jdk1..0_91 //执行rc.local时还未加载profile因此没此句会报 没找到JAVA_HOME或JRE_HOME变量 的错误
/home/act/apache-tomcat-8.0.36/bin/startup.sh > /home/act/apache-tomcat-autostart-log/`date +%Y%m%d_%H%M%S`.txt //执行并把信息输出到指定文件
2、指定以其他用户启动
先在/etc/rc.local写如下命令:
sudo -u act /home/act/apache-tomcat-8.0./bin/startup.sh > /home/act/apache-tomcat-autostart-log/`date +%Y%m%d_%H%M%S`.txt
再在tomcat/bin/下创建setenv.sh,setenv.sh里写入 export JAVA_HOME=/usr/share/jvm/jdk1..0_91
相关:http://askubuntu.com/questions/468772/tomcat-does-not-recognize-java-home
When you starting
tomcat
usingcatalina.sh
, it searching for filesetenv.sh
and sourcing it. It is searching inCATALINA_HOME
orCATALINA_BASE
.即启动tomcat时会先在bin/下找setenv.sh,如果里面设置了JAVA_HOME则优先用之。
Setting
JAVA_HOME
insetenv.sh
gives you ability to use different tomcats with different applications that need different version ofjava
, but running by one user. Other user environment would not be affected by you.
三、参考资料
http://www.cnblogs.com/z-sm/p/5657914.html
Ubuntu 设置程序开机启动(以指定用户身份)的更多相关文章
- CentOS设置程序开机启动程序/服务的方法(转)
注意:CentOS 6下基本没什么问题,CentOS 7估计不一定能行. 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. 1.把启动程序的命令添加到/etc/rc.d/rc.loca ...
- Ubuntu设置程序开机自启或者开机禁止加载
先说说ubuntu,它有运行级别这个概念 0:停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system 3:完全多用户 5:图形化 6:重启 例子:按指定顺序.在指 ...
- ubuntu设置服务开机启动
在Ubuntu下用sysv-rc-conf命令,它是chkconfig的替代命令,而使用方法与chkconfig基本相同. 安装: sudo apt-get install sysv-rc-conf ...
- Linux设置程序开机启动-tomcat开机启动
假设我有一个tomcat应用需要开机启动. 前提你的JAVA环境变量已经配置好没有问题,检测方法如图 然后找到tomcat的目录,我的目录是 /home/yuqing_4.0/tomcat_share ...
- systemctl设置程序开机启动、关闭、启用/禁用服务以vsftpd为例
参考:https://blog.csdn.net/qq_29663071/article/details/80814081 systemctl是RHEL 7 的服务管理工具中主要的工具,它融合之前se ...
- ubuntu 设置Path 开机启动脚本
vim /etc/rc.local export PATH=$PATH:/work/apps/node-v0.12.7-linux-x64/bin:/work/apps/ledisdb/binexpo ...
- CentOS程序 开机启动设置与chkconfig命令学习
CentOS设置程序开机启动的方法: 1.启动命令添加到/etc/rc.d/rc.local 文件中, 如: vim /etc/rc.d/rc.local #!/bin/sh # # This scr ...
- CentOS设置程序开机自启动的方法
转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. ...
- centos设置服务开机启动
Linux CentOS设置服务开机启动的方法 by 天涯 · 2013/07/26 CentOS设置服务开机启动的两种方法 1.利用 chkconfig 来配置启动级别 在CentOS或者RedHa ...
随机推荐
- SpringMVC对日期类型的转换
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置. 1.如果查询类使我们自己写,那么在属性前面加上@Date ...
- ubuntu完全卸载nginx
删除nginx连带配置文件 sudo apt-get purge nginx # Removes everything. 卸载不再需要的nginx依赖程序 sudo apt-get autoremov ...
- safe RGB colors
RGB是面向机器的一种颜色空间. 虽然它表示\(256 \times 256 \times 256\)种不同的颜色, 但在实际中, 大部分机器都只实现了256种颜色. 安全色(Safe RGB col ...
- 使用kuernetes提供高可用的logstash服务
在kubernetes集群中部署logstash步骤如下: 1:logstash安装文件(目前最新版本2.3.4): 2:编写Dockerfile及执行点脚本文件run.sh,并且修改logstash ...
- UML类图中的六种关系及实例【补充】
·继承和接口都比较常见,通过继承子类可以直接使用父类的(public,protected属性以及方法:而实现了Speakable接口的Person类必须定义其所有方法,包括speak()): ·依赖指 ...
- perl 哈希 连接符
#!/usr/bin/perl -w use strict; my $test_1 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; my $test_2 ...
- BIEE报表开发
(1)报表开发实例结果图 (2)开发报表步骤: (1)创建分析 (2)创建仪表盘提示 (3)创建仪表盘并发布 登录网址,输入用户名和密码 1) 新建——>分析——>选择主题区域——> ...
- hadoop报错:WARN mapred.JobClient: Error reading task outputNo route to host
解决方案: /etc/sysconfig/network/etc/hosts$hostname 这三处的主机名都要一样. 具体参考:http://blog.itpub.net/28254374/vie ...
- 【BZOJ-2756】奇怪的游戏 最大流 + 分类讨论 + 二分
2756: [SCOI2012]奇怪的游戏 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 2925 Solved: 792[Submit][Stat ...
- Matlab读入含有特殊分隔符的文件(textread)
笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充: textread 基本语法是: [A,B,C,…] = textread(filename,format) [A,B,C,…] = tex ...