繁体   English   中英

在shell中为睡眠进程设置一个名称

set a name to sleep process in shell

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我是linux的新手,其任务是编写脚本以使某些工作自动化

目前,我有一个脚本(runme.csh),其内容如下

#!/bin/csh -f

read some settings from a file>

while (some condition)

< do some work >

sleep 600

end

现在,我需要在同一shell [tcsh]上多次运行脚本副本(将脚本复制到新文件名并运行)。

[aruna>] runme1.csh和

[aruna>] runme2.csh和

[aruna>] runme3.csh和

现在,如果我想终止一次运行,则可以执行ps,通过其名称找到相应脚本的PID并终止。 但是,我无法找到脚本执行的sleep命令的pid。

有没有一种方法可以给睡眠过程起个名字,以便我可以看到哪个睡眠过程由哪个脚本执行?

谢谢 :)

1 个回复

似乎单独使用bash无法正确执行此操作,因为使用psexec -a foo sleep 100仍显示为sleep

[~ ]$ ps -u corion
   PID TTY          TIME CMD
...
101468 pts/8    00:00:00 bash
101494 pts/8    00:00:00 sleep

但是,使用Perl,您可以轻松更改进程的名称,因为Perl支持分配给$0 (进程的名称,在Perl中):

perl -wle '$0=shift;sleep shift' sleeper 100

[~ ]$ ps -u corion
   PID TTY          TIME CMD
...
100740 pts/8    00:00:00 bash
104067 pts/8    00:00:00 sleeper

上面的oneliner将名称更改为给定的第一个参数,然后休眠与给定的第二个参数一样多的秒。

1 在shell中设置进程名称[重复]

这个问题已经在这里有了答案: 如何在bash中更改argv0,以便在ps中以不同的名称显示命令? 7个答案 我有这样的东西 所以我在后台运行它。 当我放入ps时,过程名称为“ bash”。 有什么办法可以启动带有名称的进程? 当我输入命令ps时 ...

4 Shell脚本中的睡眠间隔

我制作了一个基本的shell脚本,该脚本查找文件的存在。 它可以获取睡眠间隔的参数(可选)。 如果我什么都不给,默认值是60秒。 这是我的代码: 运行此后 ,我得到此错误: sleep: invalid time interval '*60' 我想这是变量的一个小错误 ...

5 睡眠挂在shell脚本中

我在Ubuntu PC上运行了一个cron脚本,该脚本会定期检查磁盘空间。 此脚本中还使用了“ sleep 5”。 该系统已经运行了一个月,但是遇到了问题。 有多个运行cron脚本的实例(大约数千个)和多个“睡眠”实例。 Crontab条目: disk_check_scrip ...

6 在它自己的进程中启动一个 shell 程序

在 linux 上,我需要从 Python 3 程序中启动许多 socat 实例。 看来 os.exec 函数都假设 exec 中指定的程序是替换当前正在执行的 python。 似乎有办法将事情作为子进程启动,但是当调用 python 程序结束时,子进程可能会死亡。 在 Python 程序完成它 ...

7 用信号从睡眠中唤醒进程

我让一个进程进入睡眠状态。 当一个进程进入睡眠状态时,它被标记为处于特殊状态并从调度程序的运行队列中删除,我想通过命令行发送信号来唤醒它,我该怎么做。 假设我有一个使用sleep 100 秒的 C 代码。 我需要发送什么信号才能唤醒它并使返回值成为休眠后剩余的秒数? #include &lt;un ...

8 在带有子进程的一个shell中依次运行shell命令

我在使用subprocess类运行一系列顺序命令时遇到困难,我需要这样做,以便python程序可以调用cv virtualenv的安装,然后运行另一个python程序(需要在virtualenv中运行) 这是我从终端运行的命令,您可以看到它包含多个命令,这些命令按顺序运行,直到创建cv虚拟 ...

10 关于进程和睡眠()

我已经用C编写了一个程序,并在Ubuntu中运行它,主要代码如下: 问题是:为什么代码sleep(4); 在printf("a");之前运行printf("a"); 希望有人能给我答案,谢谢! ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM