我想要一个显示输入值的网页(用PHP编写,因为它是我所知道的).我希望将该值传递给已经运行的ac程序.
我虽然使用套接字在两个进程之间进行通信,但我该如何设法做到这一点?如何使用fsockopen连接到本地套接字.
我有一个.sh脚本,它粘合了许多其他脚本,由Windows应用程序中的jsch ChannelExec调用.
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("/foo/bar/foobar.sh");
channel.connect();
Run Code Online (Sandbox Code Playgroud)
如果我运行像"nohup /foo/bar/foobar.sh >> /path/to/foo.log&"这样的命令,那么所有长期工作(数据库操作,文件处理等)似乎都会丢失.
检查日志文件,只查找那些回声填充(长期操作之前和之后,计算运行时间等).
我检查了权限,$ PATH,将源/ etc/profile添加到我的.sh但这些都没有.
但是当我正常运行命令(同步运行,在Windows上将所有回显输出打印到我的java客户端)时,所有事情都顺利进行.
这是一个非常具体的问题.希望有经验的人可以帮助我.
预先感谢.
韩
我正在尝试在php中为我的任务实现某种"多处理".任务是检查网络中每个设备的状态.
为此,我决定使用循环exec,它的工作原理.但我不知道它是否正常工作:
$command = "php scan_part.php $i > null &";
exec($command);
Run Code Online (Sandbox Code Playgroud)
这可以scan_part.php根据需要多次调用,但问题是:我如何计算所有scan_part.php执行所需的时间?
拜托,帮助我,我被困住了!
#!/bin/sh
# \
exec tclsh "$0" ${1+"$@"}
package require Expect
package require log
source [file join [info library] init.tcl]
set exp::winnt_debug 1
log::lvChannel debug stdout
log::log debug "debug msg ON\r"
set env(TERM) dumb
array set OPTS {
host ""
user ""
passwd ""
login telnet
prompt "(%|#|>|\\$) $"
ls "/bin/ls -A1"
}
set xlpad "yahoo.com"
exec [auto_execok dir]
while {1} {
spawn ping $xlpad
set loss 0
set replya 0
for { set pingc 0 } { $pingc < …Run Code Online (Sandbox Code Playgroud) 我正在使用exec()语句设置一个值,如下所示:
foo = 3
def return_4():
return 4
instruction = 'foo = return_4()'
exec(instruction) # <---- WHERE THE MAGIC HAPPENS
print(foo)
Run Code Online (Sandbox Code Playgroud)
正如我所料,这是4.
我的程序有操作Rubik的立方体的操作.在这个精简版中,我会做四件事:
我将实例化一个立方体,填充一个面(缩写为"前左上"和"前右下"等).
我将有一个旋转前脸的功能.
我将有一个'解释器'函数,它接受一个多维数据集和一个指令列表,并将这些指令应用于多维数据集,返回修改后的多维数据集.这是我使用'exec'的地方(以及我认为破损发生的地方).
最后,我将在部分立方体上运行解释器,并指示旋转面部一次.
+
my_cube = [['FTL', 'FTM', 'FTR',
'FML', 'FMM', 'FMR',
'FBL', 'FBM', 'FBR'],
[],[],[],[],[]] # other faces specified in actual code
def rotate_front(cube):
front = cube[0]
new_front = [front[6],front[3],front[0],
front[7],front[4],front[1],
front[8],front[5],front[2]]
# ...
ret_cube = cube
ret_cube[0] = new_front
# pdb says we are returning a correctly rotated cube,
# and calling this directly …Run Code Online (Sandbox Code Playgroud) 如果我PDO::exec()是一个查询,它的工作原理.然而,当我尝试先PDO::prepare() 那么 PDO::execute(),它不工作.为什么?
例如,这可以按预期工作:
$db->exec($string);
Run Code Online (Sandbox Code Playgroud)
但是,这不是:
$stmt = $db->prepare($string);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
没有抛出任何错误,并且$db->errorInfo显示全部为零,意味着成功.
这绝对是对我有意义的.
编辑上下文:
注意,newDB()这只是一个使用我需要的设置启动数据库的功能.
当我运行以下内容时,它按预期工作:
$db = newDB();
if (!$error) {
if (isset($id)) {
try {
$db->exec('UPDATE Events SET Title = "WHY" , Date = "2012-11-01 00:00:00", Place = "no", Description = "no", UDate = now() WHERE Id = "12"');
} catch(PDOException $e) {
$error = 1;
}
}
}
$db = null;
Run Code Online (Sandbox Code Playgroud)
但是,这不是,我不知道为什么:
$db = newDB();
if …Run Code Online (Sandbox Code Playgroud) 我正在编写一个C程序,它将运行Linux命令,如:
cat /etc/passwd | grep list | cut -c 1-5
我没有任何结果
*这里父母等待第一个孩子(child_pid)完成;
第一个孩子等第二个孩子(pfils)!!
任何的想法?
代码:
main()
{
pid_t child_pid;
int fd[2];
int pfd[2];
pipe(pfd);
child_pid = fork ();
if (child_pid != 0)
{
wait(child_pid);
close(pfd[1]);
dup2(pfd[0],0);
close(pfd[0]);
execlp("cut","cut","-c","1-5",NULL);
}
else
{
pid_t pfils = fork();
pipe(fd);
if(pfils == 0)
{
close(fd[0]);
dup2(fd[1],1);
close(fd[1]);
execlp("cat", "cat","/etc/passwd",NULL);
}
else
{
wait(pfils);
close(fd[1]);
dup2(fd[0],0);
close(fd[0]);
close(pfd[0]);
dup2(pfd[1],1);
close(pfd[1]);
execlp("grep","grep","list",NULL);
}
}
}
Run Code Online (Sandbox Code Playgroud) 这个存储过程
CREATE PROC GetPage(@blockNumber int, @blockSize int = 40, @query varchar(1000))
AS
DECLARE @a int = @blockNumber * @blockSize;
DECLARE @b int = @a + @blockSize - 1;
DECLARE @fromPos int = PATINDEX('% FROM %', @query);
DECLARE @from varchar(1000) = SUBSTRING(@query, @fromPos, 1000);
DECLARE @select varchar(1000) = SUBSTRING(@query, 1, @fromPos);
DECLARE @SQL varchar(1000) =
'select *, ROW_NUMBER() over (order by ONE) R INTO #FOO FROM ('
+@SELECT+',1 ONE'+@from+') T';
EXEC @SQL;
SELECT * FROM FOO WHERE RN BETWEEN @a AND …Run Code Online (Sandbox Code Playgroud) 我有一个在Apache/PHP上运行的站点,并且作为性能问题,我编写了一个javascript来执行特定任务.
我在服务器上安装了node.js,以便运行这个javascript.当我从命令行调用脚本时,它工作正常.请参阅以下命令:
> node myscript.js
Run Code Online (Sandbox Code Playgroud)
但是我需要它从php页面运行,我试图通过调用exec()PHP函数来做到这一点,如下所示:
<?php exec('node myscript.js >/dev/null/ 2>&1 &'); ?>
Run Code Online (Sandbox Code Playgroud)
......但它不起作用.
难道我做错了什么?还有另一种方法可以做我想要的吗?
我可以使用PHP exec或者运行任何二进制文件而不是composer.phar shell_exec.
在同一个文件夹中,我有作曲家和另一个具有相同权限的php可执行文件:
ls -lh
total 1,8M
-rwxr-xr-x 1 me me 1,8M août 22 20:48 composer.phar
-rwxr-xr-x 1 me me 39 août 22 21:05 test.php
Run Code Online (Sandbox Code Playgroud)
Test.php包含:
#!/usr/bin/env php
<?php
print 'hello';
Run Code Online (Sandbox Code Playgroud)
然后我有这个脚本:
<?php
print $cmd = "composer.phar --version 2>&1" ;
print "<br>";
$return = exec( $cmd );
var_dump($return);
print "<br><br>";
print $cmd = "test.php 2>&1";
print "<br>";
$return = shell_exec( $cmd );
var_dump($return);
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
composer.phar --version 2>&1
[...]Process.php:81:string 'sh: 1: : Permission denied' (length=26)
test.php 2>&1
[...]Process.php:88:string …Run Code Online (Sandbox Code Playgroud)