linux 服务 exec,linux – 屏幕-X exec命令直到手动连接才能工作

我有一个批处理脚本,可以在屏幕内启动

java服务器应用程序.该命令如下所示:

cd /dir/ && screen -A -m -d -S javascreen java -Xms640M -Xmx1024M -jar javaserverapp.jar nogui

运行批处理脚本后,它启动服务器并将其放入正确的屏幕.如果我之后列出我的屏幕,我会看到这样的事情:

user@gtwy /dir $screen -list

There is a screen on:

16180.javascreen (Detached)

1 Socket in /var/run/screen/S-user.

但是,我有第二个批处理脚本,它将自动命令发送到此服务器并在不同的crontab间隔上运行.由于应用程序的工作方式,我将命令发送到它(此命令告诉它警告连接的用户“测试123”):

screen -X exec .\!\! echo say testing 123

我也尝试过:

screen -R -X exec .\!\! echo say testing 123

screen -S javascreen -X exec .\!\! echo say testing 123

不幸的是,这些命令不起作用.他们甚至没有给我一个错误信息,他们什么都不做.

但是 – 如果我首先手动连接到屏幕(使用下面的命令)然后分离,现在我可以完美地运行上述任何命令.如果我在这里不够清楚的话,我可以通过视频来证明这一点.

screen -r -d

提前致谢.

更新:这是/ etc / screenrc的重要部分.它应该是完全香草的,我从来没有编辑过这个文件.

# VARIABLES

# ===============================================================

# No annoying audible bell,using "visual bell"

# vbell on # default: off

# vbell_msg " -- Bell,Bell!! -- " # default: "Wuff,Wuff!!"

# Automatically detach on hangup.

autodetach on # default: on

# Don't display the copyright page

startup_message off # default: on

# Uses nethack-style messages

# nethack on # default: off

# Affects the copying of text regions

crlf off # default: off

# Enable/disable multiuser mode. Standard screen operation is singleuser.

# In multiuser mode the commands acladd,aclchg,aclgrp and acldel can be used

# to enable (and disable) other user accessing this screen session.

# Requires suid-root.

multiuser off

# Change default scrollback value for new windows

defscrollback 1000 # default: 100

# Define the time that all windows monitored for silence should

# wait before displaying a message. Default 30 seconds.

silencewait 15 # default: 30

# bufferfile: The file to use for commands

# "readbuf" (''):

bufferfile $HOME/.screen_exchange

#

# hardcopydir: The directory which contains all hardcopies.

# hardcopydir ~/.hardcopy

# hardcopydir ~/.screen

#

# shell: Default process started in screen's windows.

# Makes it possible to use a different shell inside screen

# than is set as the default login shell.

# If begins with a '-' character,the shell will be started as a login shell.

# shell zsh

# shell bash

# shell ksh

shell -$SHELL

# shellaka '> |tcsh'

# shelltitle '$|bash'

# emulate .logout message

pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."

# caption always " %w --- %c:%s"

# caption always "%3n %t%? @%u%?%? [%h]%?%=%c"

# advertise hardstatus support to $TERMCAP

# termcapinfo * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'

# set every new windows hardstatus line to somenthing descriptive

# defhstatus "screen: ^En (^Et)"

# don't kill window after the process died

# zombie "^["

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值