我有一个脚本文件如下。
#!/bin/bash
set -x
set -e
#VBoxManage startvm "cuckoo-window" --type gui
python ~/Downloads/cuckoo-modified-master/utils/api.py --host 0.0.0.0 --port 8090
#cd ~/Downloads/cuckoo-modified-master/web/
# python manage.py runserver 0.0.0.0:8008
# python ~/Downloads/cuckoo-modified-master/cuckoo.py
我的服务脚本/etc/init/miscservices.conf
start on runlevel
script
cd ~/Downloads/cuckoo-modified-master
./miscservices.sh
end script
我还在/etc/init.d/miscservices中创建了一个符号链接,并在启动时添加了
sudo update-rc.d miscservices defaults
sudo service miscservices start
miscservices stop/waiting
没有脚本启动。当我从下面开始时,它们会转到root模式,但仍然没有服务启动。但是当我退出它时,启动服务的2个实例。请解释这个行为。
sudo /etc/init.d/miscservices start
start: Unknown job: on
Script started, file is typescript
root@abc:~# sudo netstat -ntlp | grep 8090
root@abc:~# ps -aux | grep misc
root 2929 0.0 0.0 81976 2260 pts/6 S+ 13:42 0:00 sudo /etc/init.d/miscservices start
root 2930 0.0 0.0 4440 652 pts/6 S+ 13:42 0:00 sh /etc/init.d/miscservices start
root 2962 0.0 0.0 16192 936 pts/15 S+ 13:43 0:00 grep --color=auto misc
root@abc:~#
root@abc:~#
root@abc:~# exit
exit
Script done, file is typescript
+ set -e
+ python /home/aserg/Downloads/cuckoo-modified-master/utils/api.py --host 0.0.0.0 --port 8090
Bottle v0.12.0 server starting up (using WSGIRefServer())...
Listening on http://0.0.0.0:8090/
Hit Ctrl-C to quit.
答案 0 :(得分:0)
我认为问题可能出在~/Downloads/cuckoo-modified-master/miscservices.sh
脚本中(并且btw在upstart脚本中使用~
并不是最好的想法,因为它可能会以root身份执行,并且可能存在一些问题,确定在哪里{{{ 1}})。默认情况下,upstart不会产生进程。这意味着如果你有这样的配置:
~
upstart只会启动您的流程一次,然后什么都不做。如果你启动它一次并且脚本中有一些错误它只是停止没有信息给你。您可以检查日志文件。默认情况下,它必须位于start on runlevel
script
cd ~/Downloads/cuckoo-modified-master
./miscservices.sh
end script
(对于Ubuntu 14.04 LTS)。如果没有,您可以检查操作系统中默认的新贵记录在哪里,或者通过在某个地方回复一些通知来手动编写。例如:
/etc/log/upstart/miscservices.log
如果你想重新生成脚本进程,你可以添加到脚本的开头:
env logf="/home/someuser/miscservices.log"
script
echo "Script it starting..." >> $logf
/home/someuser/Downloads/cuckoo-modified-master/miscservices.conf >> $logf
echo "Script is ended." >> $logf
end scipt
或者只是在脚本文件中进行无限循环。
PS。您可以通过更清晰的代码修改您的upstart脚本respawn
respawn limit unlimited
。从/etc/init/miscservices.conf
到:
start on runlevel
这意味着脚本将在文件系统启动后启动,并在关闭时关闭。
PPS。你不需要start on filesystem
stop on shutdown
中的符号链接。如果你使用upstart,那就试试吧!你不需要任何其他东西。只需将您的结尾部分放在/etc/init.d/miscservices
中,它就会自动启动。它可以是这样的:
/etc/init
希望我能帮忙!