远程执行卡住问题~

讨论了使用SSH远程执行命令时遇到的问题,包括命令执行后无法正常退出及远程应用持续运行的情况。提供了解决方案,如使用nohup命令后台运行及避免应用持续占用终端。同时探讨了在远程脚本执行后如何正常返回,分析了可能引起问题的原因并给出了解决思路。

setsid /etc/init.d/$SERVICE_NAME  start &

 

ssh 远程执行一条命令,如何退出

找到办法了
在命令的后面加上0</dev/null 1>;/dev/null 2>;/dev/null
是输出设备重定向一下

使用nohup,但在最后加上&符号,来后台运行。这样本地就木有进程了。

 

我的命令是这样的:
ssh root@192。168.80.21 "/usr/bin/runyj -q YJ.INITQ.QUEUE &"
其中/usr/bin/runyj 是一个不会退出的进程
这样的话,ssh也就不会退出来
我就用下面的命令使ssh在后台执行
ssh root@192.168.80.21 "/usr/bin/runyj -q YJ.INITQ.QUEUE &" &

这样有个问题就是在本地始终有这个ssh进程,无法退出,除非强制Kill掉
而且强制Kill掉后,在远程执行的进程/usr/bin/runyj也会被Kill掉

如何能使ssh退出而远程执行的命令继续执行呢?

 

 

ssh的信用机制都建好了,远程运行shell脚本也都没问题,现在出现了一种这样的情况:

  1. ssh 10.*.*.* "test.sh"
复制代码



现在我是想这个脚本执行完后能够正常返回,但是这个脚本虽然执行成功了,但在终端的地方一直停在那里,需要使用 Ctrl+C才能退出来,而脚本中的动作确实也都做成功了,我想知道这种情况怎么去寻找原因,怎么去解决呢?
该脚本在本地执行没有这种情况,执行完就直接返回了。

在test.sh中是需要启动一个应用程序,比如"testserver",在脚本中启动的语句是:

  1. $PATH/testserver --port $PORT >> /dev/null &
复制代码



我觉得可能是启动这个程序所引起的问题,因为其他的脚本起其他的程序也都没问题,所以就在这一句上改过,输出重定向也改过几种了,不见效,希望大家知道的给点指引。

多谢多谢。

 

ssh的信用机制都建好了,远程运行shell脚本也都没问题,现在出现了一种这样的情况:

  1. ssh 10.*.*.* "test.sh"
复制代码



现在我是想这个脚本执行完后能够正常返回,但是这个脚本虽然执行成功了,但在终端的地方一直停在那里,需要使用 Ctrl+C才能退出来,而脚本中的动作确实也都做成功了,我想知道这种情况怎么去寻找原因,怎么去解决呢?
该脚本在本地执行没有这种情况,执行完就直接返回了。

在test.sh中是需要启动一个应用程序,比如"testserver",在脚本中启动的语句是:

  1. $PATH/testserver --port $PORT >> /dev/null &
复制代码



我觉得可能是启动这个程序所引起的问题,因为其他的脚本起其他的程序也都没问题,所以就在这一句上改过,输出重定向也改过几种了,不见效,希望大家知道的给点指引。

多谢多谢。

 

 

  我也遇到这样的问题。
/etc/init.d/runjboss.sh restart >/dev/null 2>&1 是可以退出的
/etc/init.d/runjboss.sh restart 不可以退出
runjboss是HA用,启动jboss的脚本。
这个为什么会是这样,求大侠指导。

### 解决 Redis-cli 远程连接卡住问题 #### 检查网络配置 当遇到 `redis-cli` 远程连接卡住的情况,首先应当确认客户端与服务器之间的网络连通性。可以通过执行简单的 ping 测试来验证两台机器之间是否存在基本的通信能力[^1]。 ```bash ping remote_server_ip_address ``` 如果发现无法正常响应,则可能是由于物理链路故障或是路由问题所引起,需进一步排查底层网络环境。 #### 防火墙设置审查 防火墙可能会阻止来自外部 IP 地址对 Redis 服务端口(默认为6379)的访问请求。因此建议检查并调整本地及目标主机上的防火墙策略以允许必要的流量通过: 对于 Linux 系统而言,可利用 iptables 或 firewalld 工具查看当前规则集,并添加相应条目开放指定端口号;而在 Windows Server 上则应该前往高级安全Windows Defender防火墙界面操作[^2]。 #### 审核 Redis 服务器端参数配置 为了使 Redis 实例能够接受来自其他设备发起的 TCP 请求而非仅限于本机回环接口(`localhost`),需要编辑其配置文件 `/etc/redis.conf`(路径依安装方式而异),找到 bind 行取消注释并将绑定地址更改为实际公网IP或者是0.0.0.0表示监听所有网卡接口[^3]: ```conf bind 0.0.0.0 ``` 另外还需注意保护措施——即设置密码认证机制防止未授权访问,在同一份配置文档里定位至 requirepass 字段为其赋予强随机字符串作为凭证: ```conf requirepass your_strong_password_here ``` 最后重启 Redis 服务应用更改后的设定即可尝试重新建立远程会话链接测试效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值