Скрипт Upstart для демона передачи, выполняемый как обычный пользователь

использовать osirrox для извлечения iso

osirrox -indev /path/to/iso -extract / /full-iso-contents
4
задан 8 July 2011 в 17:24

32 ответа

Моя версия:

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] # give time to send info to trackers kill timeout 30 expect fork respawn script USER=debian-transmission test -f /etc/default/transmission-daemon && . /etc/default/transmission-daemon test "$ENABLE_DAEMON" != "0" || exit 0 exec start-stop-daemon --start --quiet --chuid $USER --exec /usr/bin/transmission-daemon -- $OPTIONS end script

Woks good:

root@ubuntu-server:/etc/init# status transmission-daemon transmission-daemon start/running, process 754 root@ubuntu-server:/etc/init# ps aux|grep [t]ransmission-daemon torrent 754 0.0 1.1 41592 5596 ? Ssl Oct21 0:56 /usr/bin/transmission-daemon --auth --config-dir /var/lib/transmission-daemon/info
-1
ответ дан 25 July 2018 в 21:37
  • 1
    Этот скрипт мне не работает: transmission-simon start/running, process 5880, но процесс 5880 не существует. Я думаю, что upstart принимает PID команды start-stop-daemon вместо демона передачи. – Juan Simón 23 October 2011 в 04:15

Когда вы запускаете приложение с su -c, su ждет завершения приложения. В вашем случае, добавив опцию --foreground, сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы увидите, что процесс su завершится, как только transmission-daemon переходит на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

sudo -u <your-user> app-name options

вместо su, будучи ближе к способу Ubuntu делать вещи, и быть более простым в управлении параметрами без необходимости использования одинарных кавычек.

1
ответ дан 25 July 2018 в 21:37
  • 1
    Но если я подавляю foreground, init обнаруживает неправильный PID процесса. Он сохраняет PID sudo, но sudo завершен: initctl: trans-test start/running, process 3110, но процесс имеет другой PID: user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon – Juan Simón 8 July 2011 в 17:06
  • 2
    Непроверенная альтернатива может заключаться в том, чтобы получить право собственности на исполняемый файл (sudo chown $USER:$USER /usr/bin/transmission-daemon), затем сделать его setuid (chmod u+s /usr/bin/transmission-daemon). – enzotib 8 July 2011 в 17:28
  • 3
    Спасибо, но это не работает для меня. Tranmission будет выполняться дважды с разными пользователями. – Juan Simón 8 July 2011 в 18:30
  • 4
    Выполнено дважды, и с разными пользователями, кроме того, очень странно – enzotib 8 July 2011 в 18:40
  • 5
    Да, один передатчик-демон для каждого пользователя системы. – Juan Simón 14 July 2011 в 17:54

Хорошо, решение - запустить демон передачи на переднем плане (нет ожидаемого fork или daemon) и что start-stop-daemon создает файл pid. Полный скрипт:

description "Transmission daemon for user" start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235]) stop on runlevel [016] kill timeout 50 respawn env USER=user env PIDFILE=/var/run/transmission-user.pid script DAEMON=$(which transmission-daemon) || exit 0 CONFIGDIR=/home/$USER/.config/transmission-daemon exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log end script post-stop exec rm -f $PIDFILE
2
ответ дан 25 July 2018 в 21:37

Использование --foreground верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы исключить --foreground, добавьте expect daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Использование start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респаун при необходимости в случае аварии и т. д.

Вот моя конфигурация:

start on (runlevel [2345] and filesystem and networking) stop on runlevel [!2345] respawn kill timeout 30 setuid transmission exec /usr/bin/transmission-daemon --foreground --config-dir /var/lib/transmission
2
ответ дан 25 July 2018 в 21:37

Моя версия:

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] # give time to send info to trackers kill timeout 30 expect fork respawn script USER=debian-transmission test -f /etc/default/transmission-daemon && . /etc/default/transmission-daemon test "$ENABLE_DAEMON" != "0" || exit 0 exec start-stop-daemon --start --quiet --chuid $USER --exec /usr/bin/transmission-daemon -- $OPTIONS end script

Woks good:

root@ubuntu-server:/etc/init# status transmission-daemon transmission-daemon start/running, process 754 root@ubuntu-server:/etc/init# ps aux|grep [t]ransmission-daemon torrent 754 0.0 1.1 41592 5596 ? Ssl Oct21 0:56 /usr/bin/transmission-daemon --auth --config-dir /var/lib/transmission-daemon/info
-1
ответ дан 31 July 2018 в 12:55
  • 1
    Этот скрипт мне не работает: transmission-simon start/running, process 5880, но процесс 5880 не существует. Я думаю, что upstart принимает PID команды start-stop-daemon вместо демона передачи. – Juan Simón 23 October 2011 в 04:15

Когда вы запускаете приложение с su -c, su ждет завершения приложения. В вашем случае, добавив опцию --foreground, сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы увидите, что процесс su завершится, как только transmission-daemon переходит на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

sudo -u <your-user> app-name options

вместо su, будучи ближе к способу Ubuntu делать вещи, и быть более простым в управлении параметрами без необходимости использования одинарных кавычек.

1
ответ дан 31 July 2018 в 12:55
  • 1
    Но если я подавляю foreground, init обнаруживает неправильный PID процесса. Он сохраняет PID sudo, но sudo завершен: initctl: trans-test start/running, process 3110, но процесс имеет другой PID: user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon – Juan Simón 8 July 2011 в 17:06
  • 2
    Непроверенная альтернатива может заключаться в том, чтобы получить право собственности на исполняемый файл (sudo chown $USER:$USER /usr/bin/transmission-daemon), затем сделать его setuid (chmod u+s /usr/bin/transmission-daemon). – enzotib 8 July 2011 в 17:28
  • 3
    Спасибо, но это не работает для меня. Tranmission будет выполняться дважды с разными пользователями. – Juan Simón 8 July 2011 в 18:30
  • 4
    Выполнено дважды, и с разными пользователями, кроме того, очень странно – enzotib 8 July 2011 в 18:40
  • 5
    Да, один передатчик-демон для каждого пользователя системы. – Juan Simón 14 July 2011 в 17:54

Хорошо, решение - запустить демон передачи на переднем плане (нет ожидаемого fork или daemon) и что start-stop-daemon создает файл pid. Полный скрипт:

description "Transmission daemon for user" start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235]) stop on runlevel [016] kill timeout 50 respawn env USER=user env PIDFILE=/var/run/transmission-user.pid script DAEMON=$(which transmission-daemon) || exit 0 CONFIGDIR=/home/$USER/.config/transmission-daemon exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log end script post-stop exec rm -f $PIDFILE
2
ответ дан 31 July 2018 в 12:55

Использование --foreground верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы исключить --foreground, добавьте expect daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Использование start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респаун при необходимости в случае аварии и т. д.

Вот моя конфигурация:

start on (runlevel [2345] and filesystem and networking) stop on runlevel [!2345] respawn kill timeout 30 setuid transmission exec /usr/bin/transmission-daemon --foreground --config-dir /var/lib/transmission
2
ответ дан 31 July 2018 в 12:55

Моя версия:

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] # give time to send info to trackers kill timeout 30 expect fork respawn script USER=debian-transmission test -f /etc/default/transmission-daemon && . /etc/default/transmission-daemon test "$ENABLE_DAEMON" != "0" || exit 0 exec start-stop-daemon --start --quiet --chuid $USER --exec /usr/bin/transmission-daemon -- $OPTIONS end script

Woks good:

root@ubuntu-server:/etc/init# status transmission-daemon transmission-daemon start/running, process 754 root@ubuntu-server:/etc/init# ps aux|grep [t]ransmission-daemon torrent 754 0.0 1.1 41592 5596 ? Ssl Oct21 0:56 /usr/bin/transmission-daemon --auth --config-dir /var/lib/transmission-daemon/info
-1
ответ дан 2 August 2018 в 03:14
  • 1
    Этот скрипт мне не работает: transmission-simon start/running, process 5880, но процесс 5880 не существует. Я думаю, что upstart принимает PID команды start-stop-daemon вместо демона передачи. – Juan Simón 23 October 2011 в 04:15

Когда вы запускаете приложение с su -c, su ждет завершения приложения. В вашем случае, добавив опцию --foreground, сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы увидите, что процесс su завершится, как только transmission-daemon переходит на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

sudo -u <your-user> app-name options

вместо su, будучи ближе к способу Ubuntu делать вещи, и быть более простым в управлении параметрами без необходимости использования одинарных кавычек.

1
ответ дан 2 August 2018 в 03:14
  • 1
    Но если я подавляю foreground, init обнаруживает неправильный PID процесса. Он сохраняет PID sudo, но sudo завершен: initctl: trans-test start/running, process 3110, но процесс имеет другой PID: user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon – Juan Simón 8 July 2011 в 17:06
  • 2
    Непроверенная альтернатива может заключаться в том, чтобы получить право собственности на исполняемый файл (sudo chown $USER:$USER /usr/bin/transmission-daemon), затем сделать его setuid (chmod u+s /usr/bin/transmission-daemon). – enzotib 8 July 2011 в 17:28
  • 3
    Спасибо, но это не работает для меня. Tranmission будет выполняться дважды с разными пользователями. – Juan Simón 8 July 2011 в 18:30
  • 4
    Выполнено дважды, и с разными пользователями, кроме того, очень странно – enzotib 8 July 2011 в 18:40
  • 5
    Да, один передатчик-демон для каждого пользователя системы. – Juan Simón 14 July 2011 в 17:54

Хорошо, решение - запустить демон передачи на переднем плане (нет ожидаемого fork или daemon) и что start-stop-daemon создает файл pid. Полный скрипт:

description "Transmission daemon for user" start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235]) stop on runlevel [016] kill timeout 50 respawn env USER=user env PIDFILE=/var/run/transmission-user.pid script DAEMON=$(which transmission-daemon) || exit 0 CONFIGDIR=/home/$USER/.config/transmission-daemon exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log end script post-stop exec rm -f $PIDFILE
2
ответ дан 2 August 2018 в 03:14

Использование --foreground верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы исключить --foreground, добавьте expect daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Использование start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респаун при необходимости в случае аварии и т. д.

Вот моя конфигурация:

start on (runlevel [2345] and filesystem and networking) stop on runlevel [!2345] respawn kill timeout 30 setuid transmission exec /usr/bin/transmission-daemon --foreground --config-dir /var/lib/transmission
2
ответ дан 2 August 2018 в 03:14

Моя версия:

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] # give time to send info to trackers kill timeout 30 expect fork respawn script USER=debian-transmission test -f /etc/default/transmission-daemon && . /etc/default/transmission-daemon test "$ENABLE_DAEMON" != "0" || exit 0 exec start-stop-daemon --start --quiet --chuid $USER --exec /usr/bin/transmission-daemon -- $OPTIONS end script

Woks good:

root@ubuntu-server:/etc/init# status transmission-daemon transmission-daemon start/running, process 754 root@ubuntu-server:/etc/init# ps aux|grep [t]ransmission-daemon torrent 754 0.0 1.1 41592 5596 ? Ssl Oct21 0:56 /usr/bin/transmission-daemon --auth --config-dir /var/lib/transmission-daemon/info
-1
ответ дан 4 August 2018 в 19:08
  • 1
    Этот скрипт мне не работает: transmission-simon start/running, process 5880, но процесс 5880 не существует. Я думаю, что upstart принимает PID команды start-stop-daemon вместо демона передачи. – Juan Simón 23 October 2011 в 04:15

Когда вы запускаете приложение с su -c, su ждет завершения приложения. В вашем случае, добавив опцию --foreground, сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы увидите, что процесс su завершится, как только transmission-daemon переходит на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

sudo -u <your-user> app-name options

вместо su, будучи ближе к способу Ubuntu делать вещи, и быть более простым в управлении параметрами без необходимости использования одинарных кавычек.

1
ответ дан 4 August 2018 в 19:08
  • 1
    Но если я подавляю foreground, init обнаруживает неправильный PID процесса. Он сохраняет PID sudo, но sudo завершен: initctl: trans-test start/running, process 3110, но процесс имеет другой PID: user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon – Juan Simón 8 July 2011 в 17:06
  • 2
    Непроверенная альтернатива может заключаться в том, чтобы получить право собственности на исполняемый файл (sudo chown $USER:$USER /usr/bin/transmission-daemon), затем сделать его setuid (chmod u+s /usr/bin/transmission-daemon). – enzotib 8 July 2011 в 17:28
  • 3
    Спасибо, но это не работает для меня. Tranmission будет выполняться дважды с разными пользователями. – Juan Simón 8 July 2011 в 18:30
  • 4
    Выполнено дважды, и с разными пользователями, кроме того, очень странно – enzotib 8 July 2011 в 18:40
  • 5
    Да, один передатчик-демон для каждого пользователя системы. – Juan Simón 14 July 2011 в 17:54

Хорошо, решение - запустить демон передачи на переднем плане (нет ожидаемого fork или daemon) и что start-stop-daemon создает файл pid. Полный скрипт:

description "Transmission daemon for user" start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235]) stop on runlevel [016] kill timeout 50 respawn env USER=user env PIDFILE=/var/run/transmission-user.pid script DAEMON=$(which transmission-daemon) || exit 0 CONFIGDIR=/home/$USER/.config/transmission-daemon exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log end script post-stop exec rm -f $PIDFILE
2
ответ дан 4 August 2018 в 19:08

Использование --foreground верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы исключить --foreground, добавьте expect daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Использование start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респаун при необходимости в случае аварии и т. д.

Вот моя конфигурация:

start on (runlevel [2345] and filesystem and networking) stop on runlevel [!2345] respawn kill timeout 30 setuid transmission exec /usr/bin/transmission-daemon --foreground --config-dir /var/lib/transmission
2
ответ дан 4 August 2018 в 19:08

Моя версия:

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] # give time to send info to trackers kill timeout 30 expect fork respawn script USER=debian-transmission test -f /etc/default/transmission-daemon && . /etc/default/transmission-daemon test "$ENABLE_DAEMON" != "0" || exit 0 exec start-stop-daemon --start --quiet --chuid $USER --exec /usr/bin/transmission-daemon -- $OPTIONS end script

Woks good:

root@ubuntu-server:/etc/init# status transmission-daemon transmission-daemon start/running, process 754 root@ubuntu-server:/etc/init# ps aux|grep [t]ransmission-daemon torrent 754 0.0 1.1 41592 5596 ? Ssl Oct21 0:56 /usr/bin/transmission-daemon --auth --config-dir /var/lib/transmission-daemon/info
-1
ответ дан 6 August 2018 в 03:25
  • 1
    Этот скрипт мне не работает: transmission-simon start/running, process 5880, но процесс 5880 не существует. Я думаю, что upstart принимает PID команды start-stop-daemon вместо демона передачи. – Juan Simón 23 October 2011 в 04:15

Когда вы запускаете приложение с su -c, su ждет завершения приложения. В вашем случае, добавив опцию --foreground, сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы увидите, что процесс su завершится, как только transmission-daemon переходит на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

sudo -u <your-user> app-name options

вместо su, будучи ближе к способу Ubuntu делать вещи, и быть более простым в управлении параметрами без необходимости использования одинарных кавычек.

1
ответ дан 6 August 2018 в 03:25
  • 1
    Но если я подавляю foreground, init обнаруживает неправильный PID процесса. Он сохраняет PID sudo, но sudo завершен: initctl: trans-test start/running, process 3110, но процесс имеет другой PID: user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon – Juan Simón 8 July 2011 в 17:06
  • 2
    Непроверенная альтернатива может заключаться в том, чтобы получить право собственности на исполняемый файл (sudo chown $USER:$USER /usr/bin/transmission-daemon), затем сделать его setuid (chmod u+s /usr/bin/transmission-daemon). – enzotib 8 July 2011 в 17:28
  • 3
    Спасибо, но это не работает для меня. Tranmission будет выполняться дважды с разными пользователями. – Juan Simón 8 July 2011 в 18:30
  • 4
    Выполнено дважды, и с разными пользователями, кроме того, очень странно – enzotib 8 July 2011 в 18:40
  • 5
    Да, один передатчик-демон для каждого пользователя системы. – Juan Simón 14 July 2011 в 17:54

Хорошо, решение - запустить демон передачи на переднем плане (нет ожидаемого fork или daemon) и что start-stop-daemon создает файл pid. Полный скрипт:

description "Transmission daemon for user" start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235]) stop on runlevel [016] kill timeout 50 respawn env USER=user env PIDFILE=/var/run/transmission-user.pid script DAEMON=$(which transmission-daemon) || exit 0 CONFIGDIR=/home/$USER/.config/transmission-daemon exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log end script post-stop exec rm -f $PIDFILE
2
ответ дан 6 August 2018 в 03:25

Использование --foreground верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы исключить --foreground, добавьте expect daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Использование start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респаун при необходимости в случае аварии и т. д.

Вот моя конфигурация:

start on (runlevel [2345] and filesystem and networking) stop on runlevel [!2345] respawn kill timeout 30 setuid transmission exec /usr/bin/transmission-daemon --foreground --config-dir /var/lib/transmission
2
ответ дан 6 August 2018 в 03:25

Моя версия:

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!2345] # give time to send info to trackers kill timeout 30 expect fork respawn script USER=debian-transmission test -f /etc/default/transmission-daemon && . /etc/default/transmission-daemon test "$ENABLE_DAEMON" != "0" || exit 0 exec start-stop-daemon --start --quiet --chuid $USER --exec /usr/bin/transmission-daemon -- $OPTIONS end script

Woks good:

root@ubuntu-server:/etc/init# status transmission-daemon transmission-daemon start/running, process 754 root@ubuntu-server:/etc/init# ps aux|grep [t]ransmission-daemon torrent 754 0.0 1.1 41592 5596 ? Ssl Oct21 0:56 /usr/bin/transmission-daemon --auth --config-dir /var/lib/transmission-daemon/info
-1
ответ дан 7 August 2018 в 21:12
  • 1
    Этот скрипт мне не работает: transmission-simon start/running, process 5880, но процесс 5880 не существует. Я думаю, что upstart принимает PID команды start-stop-daemon вместо демона передачи. – Juan Simón 23 October 2011 в 04:15

Когда вы запускаете приложение с su -c, su ждет завершения приложения. В вашем случае, добавив опцию --foreground, сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы увидите, что процесс su завершится, как только transmission-daemon переходит на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

sudo -u <your-user> app-name options

вместо su, будучи ближе к способу Ubuntu делать вещи, и быть более простым в управлении параметрами без необходимости использования одинарных кавычек.

1
ответ дан 7 August 2018 в 21:12
  • 1
    Но если я подавляю foreground, init обнаруживает неправильный PID процесса. Он сохраняет PID sudo, но sudo завершен: initctl: trans-test start/running, process 3110, но процесс имеет другой PID: user 3148 0.0 0.0 154848 2708 ? Ssl 13:33 0:00 transmission-daemon – Juan Simón 8 July 2011 в 17:06
  • 2
    Непроверенная альтернатива может заключаться в том, чтобы получить право собственности на исполняемый файл (sudo chown $USER:$USER /usr/bin/transmission-daemon), затем сделать его setuid (chmod u+s /usr/bin/transmission-daemon). – enzotib 8 July 2011 в 17:28
  • 3
    Спасибо, но это не работает для меня. Tranmission будет выполняться дважды с разными пользователями. – Juan Simón 8 July 2011 в 18:30
  • 4
    Выполнено дважды, и с разными пользователями, кроме того, очень странно – enzotib 8 July 2011 в 18:40
  • 5
    Да, один передатчик-демон для каждого пользователя системы. – Juan Simón 14 July 2011 в 17:54

Хорошо, решение - запустить демон передачи на переднем плане (нет ожидаемого fork или daemon) и что start-stop-daemon создает файл pid. Полный скрипт:

description "Transmission daemon for user" start on (local-filesystems and net-device-up IFACE=eth0 and runlevel [235]) stop on runlevel [016] kill timeout 50 respawn env USER=user env PIDFILE=/var/run/transmission-user.pid script DAEMON=$(which transmission-daemon) || exit 0 CONFIGDIR=/home/$USER/.config/transmission-daemon exec start-stop-daemon --start --quiet --chuid $USER --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- -f --config-dir $CONFIGDIR --logfile $CONFIGDIR/daemon.log end script post-stop exec rm -f $PIDFILE
2
ответ дан 7 August 2018 в 21:12

Использование --foreground верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы исключить --foreground, добавьте expect daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Использование start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респаун при необходимости в случае аварии и т. д.

Вот моя конфигурация:

start on (runlevel [2345] and filesystem and networking) stop on runlevel [!2345] respawn kill timeout 30 setuid transmission exec /usr/bin/transmission-daemon --foreground --config-dir /var/lib/transmission
2
ответ дан 7 August 2018 в 21:12

Использование - переднего плана верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы опустить - передний план , добавьте в daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Используя start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респанировать его при необходимости в случае сбоя и т. д.

Вот моя конфигурация:

  ]  start on (runlevel [2345] и файловая система и сеть) stop on runlevel [! 2345] respawn kill timeout 30 setuid transmission exec / usr / bin / transmission-daemon --foreground --config-dir / var / lib  / передача  
2
ответ дан 10 August 2018 в 09:31

Хорошо, решение - запустить демон передачи на переднем плане ( no ожидать fork или daemon ) и что start-stop-daemon создает файл pid. Полный сценарий:

  начало запуска «Демона передачи для пользователя» (локальные файловые системы и сетевое устройство - IFACE = eth0 и уровень выполнения [235]) остановка на уровне выполнения [016]  50 respawn env USER = пользователь env PIDFILE = / var / run / transmission-user.pid скрипт DAEMON = $ (этот передатчик-даймон) ||  exit 0 CONFIGDIR = / home / $ USER / .config / transmission-daemon exec start-stop-daemon --start --quiet --chuid $ USER --pidfile $ PIDFILE --make-pidfile --exec $ DAEMON -  -f --config-dir $ CONFIGDIR --logfile $ CONFIGDIR / daemon.log end script post-stop exec rm -f $ PIDFILE  
2
ответ дан 10 August 2018 в 09:31

Когда вы запускаете приложение с su -c , su ждет завершения приложения. В вашем случае, добавив опцию - переднего плана , сделайте передачу, чтобы не отсоединиться от ее родителя. Таким образом, вы увидите su как родительский процесс transimssion-daemon за все время жизни последнего.

Если вы удалите этот параметр, вы будете см., что процесс su завершится, как только передатчик-daemon перейдет на задний план.

Помимо удаления этой опции, которая кажется неподходящей для службы, я предлагаю использовать

  sudo -u & lt; your-user & gt;  app-name options  

вместо su , будучи ближе к способу Ubuntu делать вещи и быть более простым в управлении опциями без необходимости использовать одиночный цитаты.

1
ответ дан 10 August 2018 в 09:31

Моя версия:

  start on (файловая система и net-device-up IFACE = lo) stop on runlevel [! 2345] # дать время для отправки информации трекеру тайм-аут kill 30 ожидания fork  respawn script USER = тест debian-передачи -f / etc / default / transmission-daemon & amp; & amp; & amp; & amp; & amp;  ,  / etc / default / transmission-daemon test "$ ENABLE_DAEMON"! = "0" ||  exit 0 exec start-stop-daemon --start --quiet --chuid $ USER --exec / usr / bin / transmission-daemon - $ OPTIONS end script  

Хорошо вокс:

  root @ ubuntu-server: / etc / init # статус-передача-daemon передачи-daemon запуск / запуск, процесс 754 root @ ubuntu-server: / etc / init # ps aux | grep [  t] ransmission-daemon торрент 754 0.0 1.1 41592 5596?  Ssl Oct21 0:56 / usr / bin / transmission-daemon --auth --config-dir / var / lib / transmission-daemon / info  
-1
ответ дан 10 August 2018 в 09:31

Использование - переднего плана верное - вы хотите выскочить, чтобы отслеживать ход вашего процесса передачи. Чтобы опустить - передний план , добавьте в daemon в конфигурацию init, которая будет следовать за двумя вилками процесса, а именно, как обезвреживают службы.

Используя start-stop-daemon является субоптимальным, поскольку выскочка не может наблюдать за вашим процессом и респанировать его при необходимости в случае сбоя и т. д.

Вот моя конфигурация:

  ]  start on (runlevel [2345] и файловая система и сеть) stop on runlevel [! 2345] respawn kill timeout 30 setuid transmission exec / usr / bin / transmission-daemon --foreground --config-dir / var / lib  / передача  
2
ответ дан 13 August 2018 в 12:59

Хорошо, решение - запустить демон передачи на переднем плане ( no ожидать fork или daemon ) и что start-stop-daemon создает файл pid. Полный сценарий:

  начало запуска «Демона передачи для пользователя» (локальные файловые системы и сетевое устройство - IFACE = eth0 и уровень выполнения [235]) остановка на уровне выполнения [016]  50 respawn env USER = пользователь env PIDFILE = / var / run / transmission-user.pid скрипт DAEMON = $ (этот передатчик-даймон) ||  exit 0 CONFIGDIR = / home / $ USER / .config / transmission-daemon exec start-stop-daemon --start --quiet --chuid $ USER --pidfile $ PIDFILE --make-pidfile --exec $ DAEMON -  -f --config-dir $ CONFIGDIR --logfile $ CONFIGDIR / daemon.log end script post-stop exec rm -f $ PIDFILE  
2
ответ дан 13 August 2018 в 12:59

Другие вопросы по тегам:

Похожие вопросы: