inittab을 사용하지 않고 영구 프로세스 만들기

inittab을 사용하지 않고 영구 프로세스 만들기

Ubuntu 14.04 LTS 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를 사용할 때 나열되지 않음) 시스템 로그에 아무것도 없습니다. 서버를 다시 시작해도 도움이 되지 않았습니다.

또한 다음을 사용하여 "/etc/systemd/system/"에 새 "myprocess.service"를 생성하여 systemd를 사용하여 새 서비스를 생성해 보았습니다.

[Unit]
Description=Process Name

[Service]
ExecStart=/var/path/to/process/myprocess
Restart=restart-always

[Install]
WantedBy=multi-user.target

마찬가지로 서버를 다시 시작한 후에는 해당 프로세스가 더 이상 존재하지 않습니다.

Ubuntu에서 영구 프로세스를 만드는 다른 방법이 있습니까?

또한 프로세스는 서버 역할을 하지만 사용자 입력도 허용할 수 있습니다. 대부분의 경우 백그라운드 프로세스로 실행되므로 기본 콘솔에 "연결"하여 일부 명령을 실행한 다음 나중에 분리할 수 있습니까? 퍼티를 사용하여 원격으로 서버에 액세스하고 있습니다.

답변1

크론탭을 사용할 수 있습니다. crontab은 매분마다 프로세스를 시작할 수 있으며, 이미 실행 중인지 확인하고 그렇다면 종료해야 합니다.http://linux.die.net/man/1/crontab

답변2

inittab은 프로세스가 너무 빨리 종료되었음을 인식하고 중지합니다. 60초 동안 기다린 후 종료되는 작은 쉘 스크립트를 사용해 보십시오. echo 명령이 제대로 작동하지 않습니다.

관련 정보