我有一个运行Ubuntu14.04LTS x64的虚拟服务器,我希望创建一个持久进程,在系统重新启动并在系统崩溃时重新启动。
为此,我将以下行添加到etc-目录中的"inittab“中:
test:5:respawn:echo "HELLO TEST" > /test.log
sometestname:234:/var/path/to/process/myprocess在运行"init q“或"telinit q”之后,什么都不会发生。没有创建test.log文件,进程也没有启动(在使用pstree时没有列出),syslog中也没有任何内容。重新启动服务器也没有帮助。
我还尝试使用systemd创建一个新服务,方法是使用以下命令在"/etc/systemd/system/“中创建一个新的"myprocess.service”:
[Unit]
Description=Process Name
[Service]
ExecStart=/var/path/to/process/myprocess
Restart=restart-always
[Install]
WantedBy=multi-user.target同样,在服务器重新启动之后,进程就不存在了。
在Ubuntu中是否还有其他方法来创建持久流程?
此外,该进程充当服务器,但也可以接受用户输入。由于它大部分时间都会作为后台进程运行,所以是否可以随心所欲地将其“附加”到主控制台以运行一些命令,并在稍后将其分离?我用putty远程访问服务器。
发布于 2015-08-11 14:55:09
你可以使用crontab。Crontab可以每分钟启动一个进程,进程应该检查它是否已经在运行,如果已经运行就退出。http://linux.die.net/man/1/crontab
发布于 2015-08-11 14:58:11
inittab将知道进程退出得太快,并停止。尝试一个在退出前等待60秒的小shell脚本。您的echo命令将无法正常工作。
https://unix.stackexchange.com/questions/222521
复制相似问题