ssh连接服务器断开之后启动的项目被默认停掉了,nohup不起作用

本文介绍了一种解决SSH连接断开后启动的项目被默认停止的问题的方法,通过创建具有root权限的新用户来启动项目,确保即使SSH连接断开也能保持项目运行。此外,还介绍了如何为非root用户配置JDK和TOMCAT。

1、背景

ssh连接服务器断开之后启动的项目被默认停掉了。
使用了nohup  ./nginx &。setsid等方法还是不行。
后面确定是中间的网关做了处理。会将当前登录的用户启动的进程都会停掉。

2、解决办法

创建新用户,并分配root权限,然后用新用户启动项目。断开ssh后就不会停进程了。
	 groupadd -g 9631 mygroup
	 useradd -u 9631 -g mygroup-d /home/myuser myuser
	 passwd myuser设置密码为XXX

 给新用户设置sudo权限:
	[root@localhost ~]# sudoers
	bash: sudoers: 未找到命令...
	[root@localhost ~]# whereis sudoers
	sudoers: /etc/sudoers /etc/sudoers.d /usr/libexec/sudoers.so /usr/share/man/man5/sudoers.5.gz

	[root@localhost ~]# ls -l /etc/sudoers
	-r--r----- 1 root root 4251 9月 25 15:08 /etc/sudoers
	
	[root@localhost ~]# chmod -v u+w /etc/sudoers
	mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)
	
	[root@localhost ~]# vim /etc/sudoers
	在文件中找到下面这一行,并添加自己的用户
		root ALL=(ALL)  ALL 
		myuser ALL=(ALL)  ALL  #这个是新增的用户

	[root@localhost ~]# chmod -v u-w /etc/sudoers
	mode of "/etc/sudoers" changed from 0640 (rw-r-----) to 0440 (r--r-
### 使用 Ant SSH 连接远程服务器启动持久化后台进程 为了通过 Apache Ant 构建工具使用 SSH 连接到远程服务器,并利用 `nohup` 命令启动一个不会因为终端关闭而停止的后台进程,可以按照以下方法操作: #### 准备工作 确保本地机器上已经安装了必要的软件包,包括 Ant 和 JSch 库。JSch 是 Java Secure Channel 的缩写,是一个用于执行基于 SSH 协议的操作库。 #### 配置 Ant Build 文件 创建或编辑现有的 build.xml 文件来定义任务。下面的例子展示了如何设置这个过程[^1]: ```xml <project name="RemoteProcessStarter" default="start-process"> <!-- 设置属性 --> <property name="remote.host" value="your.server.com"/> <property name="remote.user" value="username"/> <property name="private.key.path" location="/path/to/private/key"/> <!-- 定义 sshexec 任务 --> <taskdef resource="net/sf/antcontrib/antlib.xml"> <classpath> <pathelement location="${basedir}/libs/jsch.jar"/> <pathelement location="${basedir}/libs/ant-contrib-1.0b3.jar"/> </classpath> </taskdef> <!-- 执行远程命令的任务 --> <target name="start-process"> <sshexec host="${remote.host}" username="${remote.user}" keyfile="${private.key.path}" command="cd /to/directory; nohup java -jar your-application.jar >& log.out &" trust="true" failonerror="true"/> </target> </project> ``` 这段 XML 片段设置了几个重要的参数,比如目标主机地址 (`remote.host`)、用户名 (`remote.user`) 及私钥路径 (`private.key.path`)。它还指定了要运行的具体命令——在这个例子中是切换到指定目录下并通过 `nohup` 来保持应用程序作为守护程序运行的同时将其输出重定向至日志文件。 #### 执行构建脚本 保存上述配置之后,在命令行界面导航到包含此 build.xml 文件所在的目录,并输入 ant start-process 来触发该任务。这将会自动完成 SSH 登录以及远程命令的发送。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值