我可以使用以下命令终止独立的屏幕会话:
sudo kill $(screen -ls | awk '/ScreenName/ { print $1 }' | cut -f 1 -d '.')
我正在尝试将其实现到一个简单的PHP页面:
<?php
if ($_GET['run']) {
$cmd =shell_exec("screen -ls | awk '/ScreenName/ { print $1 }' | cut -f 1 -d '.'");
system('sudo kill $cmd');
?>
<a href="?run=true">Kill The Screen</a>
但是,PHP不起作用。我认为这是因为我无法正确实现$ cmd,因为当我尝试在终端中将命令分配给$ cmd并执行它时,它不起作用。简而言之,这发生了:
~$ cmd="screen -ls | awk '/ScreenName/ { print $1 }' | cut -f 1 -d '.'"
~$ echo $cmd
screen -ls | awk '/ScreenName/ { print $1}' | cut -f 1 -d '.'
~$ $cmd
No Sockets found in /run/screen/S-ubuntu
~$ screen -ls | awk '/ScreenName/ { print $1}' | cut -f 1 -d '.'
28578
是\
转义符吗?可能是什么问题呢?是运行屏幕的apache用户吗?
答案 0 :(得分:0)
使用两个反斜杠。
在PHP中,\\
更改为\
。
<?php
if ($_GET['run']) {
$cmd =shell_exec("screen -ls | awk '/ScreenName/ { print \\$1 }' | cut -f 1 -d '.'");
system('sudo kill $cmd');
?>
<a href="?run=true">Kill The Screen</a>