我正在使用scrapy来获取一些资源,我想让它成为cron
每30分钟开始一次的工作。
定时任务:
0,30 * * * * /home/us/jobs/run_scrapy.sh`
Run Code Online (Sandbox Code Playgroud)
run_scrapy.sh
:
#!/bin/sh
cd ~/spiders/goods
PATH=$PATH:/usr/local/bin
export PATH
pkill -f $(pgrep run_scrapy.sh | grep -v $$)
sleep 2s
scrapy crawl good
Run Code Online (Sandbox Code Playgroud)
正如脚本所示,我也试图杀死脚本进程和子进程(scrapy)。
但是,当我尝试运行脚本的两个实例时,较新的实例不会杀死较旧的实例。
如何解决?
更新:
我有不止一个.sh
scrapy脚本,它们以不同的频率在cron
.
更新 2 - 测试 forSerg
的答案:
在我运行测试之前,所有的 cron 作业都已停止。
然后我打开三个终端窗口,说它们被命名为 w1 w2 和 w3,并按以下顺序运行命令:
Run `pgrep scrapy` in w3, which print none.(means no scrapy running at the moment).
Run `./scrapy_wrapper.sh` in w1
Run `pgrep scrapy` in w3 which print …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的计算机上安装 oracle jdk7 64 位。
我找到了这个如何安装 Oracle Java JDK 7?
它用于update-alternative -install
安装对我来说是新的 JDK。
以前我只解压文件,把jdk位置加到PATH
环境变量里。
现在看来,如果我想安装其他可执行文件,我必须多次运行以下命令:
sudo update-alternatives --install "/usr/bin/xx" "xx" "/usr/lib/jvm/jdk1.7.0/bin/xx" 1
sudo chmod a+x /usr/bin/xx
Run Code Online (Sandbox Code Playgroud)
就像帖子里说的:
注意 - Java JDK 有更多的可执行文件,您可以像上面一样安装它们。java、javac、javaws 可能是最常需要的。
我认为这是相当不灵活的。所以我想知道使用update-alternative
安装jdk比其他方法有什么优势。
我尝试在我的服务器中创建 svn 用户,然后创建一个新组svn
并将当前用户添加maven
到该组中svn
。
sudo groupadd svn
sudo chgrp svn /usr/local/svn/repos
sudo usermod -a -G svn maven
Run Code Online (Sandbox Code Playgroud)
现在我尝试删除 subversion,并删除组。
然后我用了:
sudo groupdel svn
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下命令查找当前用户的组时:
groups
Run Code Online (Sandbox Code Playgroud)
我收到消息:
maven@mac:/usr/local$ 组
maven adm cdrom sudo dip plugdev lpadmin sambashare vboxusers groups: cannot find name for group ID 1001
1001
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我发现有时我使用command
来运行命令,但有时我使用./command
来运行另一个命令。
有什么不同?